引用
存储在数组中的值为数组元素。每个数组元素有一个相关的索引,它可以用来访问元素。
在大多数编程语言中,数组都具有数字索引,而且这些索引通常是从0或1开始的。
PHP允许间隔性地使用
数字或者
字符串作为数组的索引。可以将数组的索引设置为传统的数字型,也可以将索引设置为任何所希望的索引,这样可以使得索引更有意义和有用。
访问数组的内容,可以直接使用其名称。
$products[0]
使用循环访问数组
foreach($products as $current){
echo $current.' ';
}
<?php
$products = array('a'=>1,'b'=>2,'c'=>3);
foreach ($products as $current){
echo $current.'<br />';
}
?>
<?php
$products = array('a'=>1,'b'=>2,'c'=>3);
foreach ($products as $key=>$value){
echo $key." - ".$value."<br .>";
}
?>
<?php
$products = array('a'=>1,'b'=>2,'c'=>3);
while (list($key,$value) = each($products))
echo "$key - $value<br />";
?>
需要注意的一点是,当使用each()函数时,数组将记录当前元素。如果希望在相同的脚本中两次使用该数组,就必须使用函数reset()将当前元素重新设置到数组开始出。
reset($products);
数组操作符
- + 联合 $a + $b $a和$b的联合。数组$b将被附加到$a中,但是任何关键字冲突的元素将不会被添加。
- == 等价 $a == $b 如果$a和$b包含相同的元素,返回true
- === 恒等 $a === $b 如果$a和$b包含相同顺序和类型的元素,返回true
- != 不等价 $a != $b 如果$a和$b不包含相同元素,返回true
- <> 不等价 $a <> $b 与!=相同
- !== 不恒等 $a !=== $b 如果$a和$b不包含相同顺序类型的元素,返回true
多维数组
<?php
$products = array(
array(
'Code'=>'TIR',
'Description' => 'Tires',
'Price' => 100
),
array(
'Code'=>'OIL',
'Description' => 'Oil',
'Price' => 10
)
);
for($row = 0; $row < 2; $row++){
echo '|'.$products[$row]['Code'].'|'.$products[$row]['Description'].'|'.$products[$row]['Price'].'|<br />';
}
?>
数组的排序
- sort()函数
- sort($products)
- 函数asort()根据数组的每个元素值进行排序。
- 函数ksort()按关键字排序而不是按值排序。
- 实现反向排序的函数为
- rsort()、arsort()和krsort()。
多维数组的排序
需要自己编写比较函数。
function compare($x,$y){
if($x[1] == $y[1]){
return 0;
}else if($x[1]< $y[1])){
return -1;
}else{
return 1;
}
}
usort($products,'compare');
shuffle()函数
array_reverse()函数,反转数组元素的元素顺序。
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>Bob's Auto Parts - Customer Orders</title>
</head>
<body>
<h1>Bob's Auto Parts</h1>
<h2>Customer Orders</h2>
<?php
$orders = file("$DOCUMENT_ROOT/orders/orders.txt");
$number_of_orders = count($orders);
if($number_of_orders == 0){
echo "<p><strong>No orders pending.Please try again later.</strong></p>";
}
echo "<table border = \"1\"\n>";
echo "<tr><th bgcolor=\"#CCCCFF\">Order Date</th>
<th bgcolor=\"#CCCCFF\">Tires</th>
<th bgcolor=\"#CCCCFF\">Oil</th>
<th bgcolor=\"#CCCCFF\">Spark Plugs</th>
<th bgcolor=\"#CCCCFF\">Total</th>
<th bgcolor=\"#CCCCFF\">Address</th>
</tr>";
for($i=0;$i<$number_of_orders;$i++){
$line = explode("\t", $orders[$i]);
$line[1] = intval($line[1]);
$line[2] = intval($line[2]);
$line[3] = intval($line[3]);
echo "<tr>
<td>".$line[0]."</td>
<td align=\"right\">".$line[1]."</td>
<td align=\"right\">".$line[2]."</td>
<td align=\"right\">".$line[3]."</td>
<td align=\"right\">".$line[4]."</td>
<td>".$line[5]."</td>
</tr>";
}
echo "</table>";
?>
</body>
</html>
explode()函数进行字符串的分割。
原型如下:
array explode(string separator, string string [, int limit])
intval()函数可以将一个字符串转换成一个整数。
- each()函数会在指针前移一个位置之前返回当前元素。
- next()函数是将指针前移,然后在返回新的当前元素。
- reset()函数将返回指向数组第一个元素的指针。
- end()可以将指针移动到数组末尾。
- 要反向遍历一个数组,可以使用end()和prev()函数。
- prev()函数和next()函数相反,它是将当前指针往回移一个位置然后再返回新的当前元素。
对数组的每一个元素应用任何函数:array_walk()
bool array_walk(array are, string fund, [mixed userdata])
count()函数统计数组中元素个数
sizeof()函数具有同样的作用,这两个函数都可以返回数组元素的个数。
array_count_values()更加复杂一些。如果调用array_count_values($array)这个函数将会统计每个特定的值在数组$array中出现过的次数。
将数组转换成标量变量:extract()
对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的
标量变量。extract()的函数原型如下所示:
extract(array var_array [, int extract_type] [, string prefix]);
引用
函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量则是数组中的值。
<?php
$products=array(
'Code'=>'TIR',
'Description' => 'Tires',
'Price' => 100
);
extract($products);
echo $Code;
echo $Description;
echo $Price;
?>
extract_type的可用值
- EXTR_OVERWRITE 当发生冲突时覆盖已有变量(默认值)
- EXTR_SKIP 当发生冲突时跳过一个元素
- EXTR_PREFIX_SAME 当发生冲突的时创建一个名为$prefix_key变量。必须提供prefix参数
- EXTR_PREFIX_ALL 在所有变量名称之前加上由prefix参数的指定值。必须提供prefix参数
- EXTR_PREFIX_INVALID 使用指定的prefix在可能无效的变量名称前加上前缀。必须提供prefix参数
- EXTR_IF_EXISTS 只提取已经存在的变量,这个参数对于数组到变量的转换时非常有用
- EXTR_PREFIX_IF_EXISIS 只有在不带前缀的变量已经存在的情况下,创建带有前缀的变量。
- EXTR_REFS 以引用的方式提取变量
Q:
1、对数组元素进行排序(正反,一维数组以及多维数组)
参考资料:
PHP&MySQL.Web
分享到:
相关推荐
这部分会介绍如何操作和处理这些数据结构,包括字符串函数(如strlen、substr、str_replace)和数组函数(如array_push、array_pop、array_search)。 3. **文件操作**:PHP提供了强大的文件系统函数,用于读写文件...
本资料集是“Learning PHP”的第一部分,主要针对初学者,旨在帮助读者快速掌握PHP的基本概念和技能,为Web开发打下坚实的基础。 在学习PHP的过程中,了解其基本语法是至关重要的。PHP脚本以尖括号(<?php ... ?>)...
本文将根据"learning-PHP.zip_Learning Php"的资源,深入讲解PHP的基础知识。 1. **安装与环境配置** 在开始学习PHP之前,你需要在本地安装一个支持PHP的Web服务器环境,如XAMPP或WAMP。这些集成环境包含了Apache...
根据提供的信息,我们可以总结出以下关于“10day learning PHP 10日PHP学习手册”的详细知识点: ### 1. PHP的学习目标与手册特点 - **手册格式**:该手册以PDF格式呈现,旨在帮助读者在10天内从零基础达到能够...
《PHP学习》 PHP,全称“Hypertext Preprocessor”(超文本预处理器),是一...O'Reilly Learning PHP 5这本书将是你学习过程中的一份宝贵的参考资料,它将深入浅出地介绍PHP 5的相关知识,帮助你巩固基础,提升技能。
- **字符串和数组操作**:PHP提供了强大的字符串处理和数组操作函数,如strpos()、explode()、implode()和array_push()等。 - **文件和目录操作**:学习如何读写文件、创建删除目录等,例如fopen()、fwrite()、...
These key knowledge points provide a comprehensive overview of the topics covered in "Beginning PHP 5.3" and serve as a solid foundation for learning and mastering PHP programming.
例如,字符串处理函数(如strlen、str_replace)、数组操作函数(如array_push、array_pop)、日期和时间函数(如date、strtotime)等。此外,PHP还集成了MySQL数据库连接,提供了PDO(PHP Data Objects)和mysqli...
setcookie("array[C]", "I am learning PHP."); ``` 通过这种方式,可以更方便地管理一系列相关的 Cookie 数据。在实际应用中,这有助于更好地组织数据,提高应用程序的灵活性和可扩展性。 #### 总结 通过以上...
5. **数组操作**:PHP支持索引数组和关联数组,提供了丰富的数组函数,如array_push、array_pop、count、foreach遍历等。 6. **字符串处理**:str_replace、strpos、substr、trim等函数用于处理和操作字符串。 7. **...
以上只是PHP 5学习中的一部分关键知识点,实际的【Learning PHP 5】教程可能还包含更多高级主题,如设计模式、性能优化、安全性实践等。通过深入学习并掌握这些内容,开发者可以有效地构建稳定、高效且安全的PHP 5...
在本项目"learning_php"中,我们聚焦于学习和掌握PHP这一编程语言,特别是为了应对HCODE课程的需求。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,主要应用于Web开发,可嵌入HTML中,用于创建动态...
7. **数组操作**:PHP支持索引数组和关联数组,可以使用`array_push`、`count`、`foreach`等函数进行操作。 8. **文件操作**:通过`fopen`、`fwrite`、`fclose`等函数可以读写文件,`file_get_contents`用于获取...
$info .= "-- For testing and learning purposes only, not suitable for large datasets\r\n"; $info .= "-- ----------------------------\r\n\r\n"; file_put_contents($to_file_name, $info, FILE_APPEND); //...
", we are learning PHP together."; if (preg_match("/\d{4}-\d{2}-\d{2} \d{2}:\d{2} [ap]m/", $content, $matches)) { echo "匹配的时间是:" . $matches[0] . "\n"; } if (preg_match("/([\d-]{10})([\d:]{5} ...
echo 'I am learning ' . $my_array[rand(0, 6)] . ' on 51CTO.com'; } ``` 这样的代码会根据`$repetition`的值随机输出0到7次不同的编程语言。 随机数在许多实际场景中都有应用,例如验证码的生成,防止机器人...
马尔可夫链马尔可夫链算法在 PHP 中的实现。入门 use Fieg \ Markov \ MarkovChain ;$ sentences = [ 'my blue car' , 'red and blue flowers' , 'his blue... 这将导致: array(2) { 'car' => double(0.66666666666667
Moodle 这个词是 Modular Object-Oriented Dynamic Learning Environment , 即模块化面向对象的动态学习环境 的缩写。是一个用来建设基于 Internet 的课程和网站的软件包。 Moodle 平台依据社会建 构主义的教学...