这篇文章主要介绍了php常用数组array函数,结合实例形式总结分析了php常用的数组操作函数,包括数组的赋值、拆分、合并、计算、添加、删除、查询、判断、排序等,需要的朋友可以参考下
array_combine
功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值
<?php
$a = array("one","two","three");
$b = array("一","二","三");
$c = array_combine($a,$b);
print_r($c);/**结果*Array ( [one] => 一 [two] => 二 [three] => 三 )*/
array_chunk
功能:拆分数组成多个数组
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");echo "
"
;
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2,True));echo "
";
/**结果
Array
(
[0] => Array
(
[0] => apple
[1] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[a] => apple
[b] => blue
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[2] => e
)
)
*/
array_count_values
功能:统计数组中值出现的次数
<?php
$input_array = array("a"=>"apple","b"=>"blue","c","d","e");echo "
"
;
print_r(array_count_values($input_array));echo "
";
/**结果
Array
(
[apple] => 1
[blue] => 1
[c] => 1
[d] => 1
[e] => 1
)
*/
array_diff
功能:第一个数组中去掉第二个数组中有的数据,返回剩下的内容作为结果
<?php
$array1 = array("a"=>"apple","b"=>"blue","c","d","e");
$array2 = array("apple","c","d","f");
$result = array_diff($array1, $array2);
$result2 = array_diff($array2, $array1);echo "
"
;
print_r($result);//数组1中去掉数组2中剩下的
print_r($result2);//数组2中去掉数组1中剩下的echo "
";
/**结果
Array
(
[b] => blue
[2] => e
)
Array
(
[3] => f
)
*/
array_map
功能:将回调函数执行到数组中
<?php //定义回调函数function cube($n){
return ($n*$n*$n);
}
$a = array(1,2,3,4,5);
$b = array_map("cube",$a);echo "
"
;
print_r($b);echo "
";
/**结果
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
*/
array_merge
功能:合并一个或多个数组
说明:如果后面有键名相同的会覆盖掉前面的内容,键名为数字的会添加到后面
<?php
$array1 = array("color"=>"red",2,4);
$array2 = array("a","b","color"=>"green","shape"=>"trapezoid",4);
$result1 = array_merge($array1,$array2);
$result2 = array_merge_recursive($array1,$array2);echo "
"
;
print_r($result1);
print_r($result2);echo "
";
/**结果
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
Array
(
[color] => Array
(
[0] => red
[1] => green
)
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
*/
array_pop
功能:剔除数组最后一个元素,返回被剔除的元素内容
<?php
$stack = array("orange","banana","apple","1");
$last = array_pop($stack);echo "
"
;
print_r($stack);
print_r($last);echo "
";
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
)
1
*/
array_push
功能:将一个多个单元压入数组末尾,返回之后的数组个数
<?php
$stack = array("orange","banana");
$count = array_push($stack,"apple","red","blue");echo "
"
;
print_r($stack);
print_r($count);echo "
";
/**结果
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => red
[4] => blue
)
5
*/
array_rand
功能:获取随机的键名
<?php
$input = array("orange","banana","apple","red","blue");
$rand = array_rand($input,2);;
print_r($rand);
$rand = array_rand($input,3);
print_r($rand);/**结果Array([0] => 1[1] => 4)Array([0] => 0[1] => 1[2] => 3)*/
array_search
功能:查询数组中的内容,返回键值,如果有多个匹配,返回第一个匹配的内容
<?php
$array = array("blue"=>"b","red"=>"r","green","r");
$key = array_search('b', $array);echo $key;echo "
";
$key = array_search('r', $array);echo $key;echo "
";/**结果bluered*/
array_shift
功能:移除开头的元素,与array_pop相反
<?php
$fruit = array("milk","orange","banana","apple");
$top = array_shift($fruit);
print_r($top);echo "
";
print_r($fruit);/**结果milkArray ( [0] => orange [1] => banana [2] => apple )*/
array_unique
功能:去除数组重复的元素,保留第一个出现的,包括键名和值
<?php
$input = array("a"=>"green","red","b"=>"green","blue","c"=>"red");
$result = array_unique($input);
print_r($result);echo "
";
print_r($input);/**结果Array ( [a] => green [0] => red [1] => blue )Array ( [a] => green [0] => red [b] => green [1] => blue [c] => red )*/
array_slice
功能:从数组中取出部分元素
<?php
$input = array("a","b","c","d","e");
$output = array_slice($input,2);//第二个参数没有时,表示取到最后一个元素
print_r($output);echo "
";
$output = array_slice($input,-2,1);//第二个参数是正数时,表示个数;倒数第一个是-1,倒数第二个是-2
print_r($output);echo "
";
$output = array_slice($input,0,3);
print_r($output);echo "
";
$output = array_slice($input,2,-1);//第二个参数是负数时,表示位置,取到哪一位,不包括本身
print_r($output);echo "
";
$output = array_slice($input,2,-1,true);//第三个参数为true时,保留原有的键值
print_r($output);echo "
";/**结果Array ( [0] => c [1] => d [2] => e )Array ( [0] => d )Array ( [0] => a [1] => b [2] => c )Array ( [0] => c [1] => d )Array ( [2] => c [3] => d )*/
count
功能:返回数组元素个数,元素为数组的算一个
<?php
$input = array("a","b","c",array("d","e"));
$count = count($input);echo $count;echo "
";
$input = array("a","b","c","d","e");
$count = count($input);echo $count;/**结果45*/
current
功能:获取当前的指针指向元素
<?php
$array = array("foot","bike","car","plane");
$result = current($array);echo $result."
";
next($array);//使指针指向下一个元素
$result = current($array);echo $result."
";
prev($array);//使指针指向前一个元素
$result = current($array);echo $result."
";
end($array);//使指针指向最后一个元素
$result = current($array);echo $result."
";/**结果footbikefootplane*/
in_array
功能:检验某值是否存在数组中,有返回True,没有返回False
<?php
$os_list = array("Mac","NT","Irix","Linux");if(in_array("Irix",$os_list)){echo "当前操作系统列表中存在Irix";
}else{echo "当前操作系统列表中不存在Irix";
}echo "
";if(in_array("mac",$os_list)){echo "当前操作系统列表中存在mac";
}else{echo "当前操作系统列表中不存在mac";
}echo "
";/**结果当前操作系统列表中存在Irix当前操作系统列表中不存在mac*/
list
功能:将数组中的信息赋值给多个变量
<?php
$info = array("red","blue","green");list($flag,$sky,$grassland) = $info;echo "$flag,$sky,$grassland";echo "
";list($flag,,$grassland) = $info;echo "$flag,$grassland";echo "
";list(,,$grassland) = $info;echo "$grassland";echo "
";/**结果red,blue,greenred,greengreen*/
shuffle
功能:打乱数组
<?php
$numbers = range(1,5);//生成一个随机数组
print_r($numbers);echo "
";
shuffle($numbers);//打乱数组
print_r($numbers);/**结果Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )Array ( [0] => 4 [1] => 1 [2] => 5 [3] => 2 [4] => 3 )*/
array_keys
功能:获取数组的键名,第二个参数可以指定获取某个元素
<?php
$array = array(0=>100,"color"=>"red");
print_r(array_keys($array));echo "
";
$array = array("blue","red","green","blue","blue");
print_r(array_keys($array,"blue"));echo "
";
$array = array("color"=>array("blue","red","green"),"size"=>array("small","medium","large"));
print_r(array_keys($array));echo "
";/**结果Array ( [0] => 0 [1] => color )Array ( [0] => 0 [1] => 3 [2] => 4 )Array ( [0] => color [1] => size )*/
array_reverse
功能:获取数组的反向
<?php
$input = array("php",3.0,array("green","red"));
$result = array_reverse($input); //打乱键名
$result_keyed = array_reverse($input,TRUE);//保留键名
print_r($result);
print_r($result_keyed);/**结果Array([0] => Array([0] => green[1] => red)[1] => 3[2] => php)Array([2] => Array([0] => green[1] => red)[1] => 3[0] => php)*/
arsort
功能:逆向排序,索引不变
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或数字foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果b = orangea = lemonc = bananad = apple*/
asort
功能:进行正向排序
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
arsort($fruits);//按照字符逆向排序或数字foreach($fruits as $key=>$val){echo "$key = $val
";
}echo "
"
;
asort($fruits);//按照字符正向排序或数字foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果b = orangea = lemonc = bananad = appled = applec = bananaa = lemonb = orange*/
krsort
功能:按照键名进行逆向排序
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
krsort($fruits);//按照键名逆向排序或数字foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果d = applec = bananab = orangea = lemon*/
ksort
功能:按照键名进行正向排序
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
ksort($fruits);//按照键名正向排序或数字foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果a = lemonb = orangec = bananad = apple*/
rsort
功能:按照值进行逆向排序,键名改变
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
rsort($fruits);//按照值进行逆向排序或数字,键名改变foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果0 = orange1 = lemon2 = banana3 = apple*/
sort
功能:按照值进行正向排序,键名改变
<?php
$fruits = array("a"=>"lemon","b"=>"orange","c"=>"banana","d"=>"apple",
);
sort($fruits);//按照值进行逆向排序或数字,键名改变foreach($fruits as $key=>$val){echo "$key = $val
";
}/**结果0 = apple1 = banana2 = lemon3 = orange*/