经验之谈PHP数组函数总结

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)); 

2.比较2个数组,array_diff_assoc()或者array_diff(),如果返回值为空,表示两个数组相同,否则就不同。

3.用一个函数来过滤数组中的数值array_filter()
<?php
function odd($var)
{
    return($var % 2 == 1);
} 
function even($var)
{
    return($var % 2 == 0);
} 
$array1 = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5);
$array2 = 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"));

?>
4.array_map()将回调函数作用到给定数组的单元上,它的参数可以是一个数组,也可以是多个数组,回调函数的参数必须要和调用它的参数相同。

 //单个参数的例子,将数组中的每个值,乘以它的3次方  

<?php
function cube($n)
{
    return $n * $n * $n;

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?> 
//多个数组参数的例子  

<?php
function show_Spanish($n,$m){  
    return  'Thenumber'.$n.'iscalled'.$m.'inSpanish';  
}  
 
function map_Spanish($n,$m){  
return array($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  
)  
以上就是有关PHP数组函数的相关总结,大家要熟记啊。

你可能感兴趣的:(经验之谈PHP数组函数总结)