这几天在网上看了很多有关PHP数组函数的相关知识,觉得孔老夫子的“温故而知新”果然不假,这里是我总结的一些经验,希望对大家有帮助。
#T#PHP中的数组实际上是一个有序图,图是一种把values映射到keys的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个PHP数组作为值,也可以很容易地模拟树。解释这些结构超出了本手册的范围,但对于每种结构你至少会发现一个例子。要得到这些结构的更多信息,我们建议你参考有关此广阔主题的外部著作,以下特记下我的一些PHP数组函数体会:
1.将一个1维数组分割成2维数组array_chunk()
$input_array=array('a','b','c','d','e');
print_r(array_chunk($input_array,2));
- 1.
- 2.
2.比较2个数组,array_diff_assoc()或者array_diff(),如果返回值为空,表示两个数组相同,否则就不同。
3.用一个函数来过滤数组中的数值array_filter()
functionodd($var){
return($var%2==1);
}
functioneven($var){
return($var%2==0);
}
$arrayarray1=array("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
$arrayarray2=array(6,7,8,9,10,11,12);
echo"Odd:\n";
print_r(array_filter($array1,"odd"));
echo"Even:\n";
print_r(array_filter($array2,"even"));
?>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
4.array_map()将回调函数作用到给定数组的单元上,它的参数可以是一个数组,也可以是多个数组,回调函数的参数必须要和调用它的参数相同。
//单个参数的例子,将数组中的每个值,乘以它的3次方
functioncube($n){
return$n*$n*$n;
}
$a=array(1,2,3,4,5);
$b=array_map("cube",$a);
print_r($b);
?>
//多个数组参数的例子
functionshow_Spanish($n,$m){
return"Thenumber$niscalled$minSpanish";
}
functionmap_Spanish($n,$m){
returnarray($n=>$m);
}
$a=array(1,2,3,4,5);
$b=array("uno","dos","tres","cuatro","cinco");
$c=array_map("show_Spanish",$a,$b);
print_r($c);
$d=array_map("map_Spanish",$a,$b);
print_r($d);
?>
//输出结果
//printoutof$c
Array
(
[0]=>Thenumber1iscalledunoinSpanish
[1]=>Thenumber2iscalleddosinSpanish
[2]=>Thenumber3iscalledtresinSpanish
[3]=>Thenumber4iscalledcuatroinSpanish
[4]=>Thenumber5iscalledcincoinSpanish
)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
以上就是有关PHP数组函数的相关总结,大家要熟记啊。