数字索引数组
大多数编程语言都支持这种数组,在PHP中,数字索引的默认值是从0开始的。
- 数字索引数组的初始化
$products = array('Tires','Oil','Spark Plugs');
- 遍历数组
利用索引for循环便利
foreach遍历for ($i=0;$i<3;$i++){ echo $products[$i].' '; }
foreach ($products as $product){ echo $product.' '; }
使用不同索引的数组
php支持键值对
- 初始化
键和值之间的符号只是一个$prices = array('Tires'=>100,'Oil'=>10,'Spark Plugs'=>4);
=>
符号 - 访问数组
可以通过变量名和数组访问元素例如:$prices['Tires']
- 遍历数组
foreach遍历
使用each()遍历foreach ($prices as $key=>$value){ echo $key,' - '.$value; }
while ($element = each($prices)){ echo $element['key'].' - '.$element['value']; }
数组操作符
操作符 | 名称 | 示例 | 结果 |
---|---|---|---|
+ | 联合 | $a+$b | 数组$b被附加到$b中,有冲突的元素将不会被添加 |
== | 等价 | $a==$b | 如果$a和$b包含相同元素,返回true |
=== | 恒等 | $a===$b | 如果$a和$b包含相同顺序和类型的元素,返回true |
!= | 不等价 | $a!=$b | 如果$a和$b不包含相同元素,返回true |
<> | 不等价 | $a<>$b | 同!== |
!== | 不恒等 | $a!==$b | 如果$a和$b不包含相同顺序类型的元素,返回true |
数组排序
-
sort()函数
sort()
函数可以将数字索引数组进行排序$products = array('Tires','Oil','Spark Plugs'); sort($products);
注:sort()不能用于键值对类型的数组进行排序
-
使用asort()和ksort()对键值对数组排序
关键字和值在排序时仍然能保持一致- asort()
asort()
对值进行排序$prices = array('Tires'=>100,'Oil'=>10,'Spark Plugs'=>4); asort($prices);
- ksort()
ksort()
对键进行排序$prices = array('Tires'=>100,'Oil'=>10,'Spark Plugs'=>4); ksort($prices);
- asort()
-
反向排序
sort()
,asort()
,ksort()
都是按照升序排序的,他们每一个都对应一个反向排序的函数,分别为:rsort()
,arsort()
和krsort()
-
usort()自定义排序
$products = array('Tires','Oil','Spark Plugs'); function compare($a,$b){ if ($a==$b) return 0; return ($a<$b)?-1:1; } usort($products,'compare');
usort($products,function ($a,$b){ if ($a==$b) return 0; return ($a<$b)?-1:1; });
数组指针操作
-
current()
,pos()
初始指向插入到数组中的第一个单元
pos($array_name)
是current($array_name)
函数的别名。 -
next()
,each()
调用next()和each()都将指向下一个元素,调用each($array_name)
会在指针移动前返回当前元素,next($array_name)
则是指针移动后放回新的元素 -
reset()
返回数组的第一个元素 -
end()
返回数组的最后一个元素 -
prev()
返回前一个元素:指针前移后,返回新的元素
逆序遍历
$array = array(1,2,3,4,5);
$value = end($array);
while ($value){
echo "$value ";
$value = prev($array);
}
数组批量操作
-
array_walk()
对数组中的每个元素应用用户自定义函数:
array_walk(array,myfunction,userdata...)
参数 | 描述 |
---|---|
array | 必需。规定数组 |
myfunction | 必需。用户自定义函数的名称。数组的键名和键值是参数。 |
userdata,... | 可选。规定用户自定义函数的参数。可以向此函数传递任意多参数。 |
function myfunction($value,$key,$p){
$value *= $p;
echo "$key is $value";
}
$prices = array('Tires'=>100,'Oil'=>10,'Spark Plugs'=>4);
array_walk($prices,'myfunction',2);
网友评论