- php数组处理案例(即Array函数)
- 更多参考(约80个函数):
- 1、arsort/asort/ksort/krsort
- 2、key(array)
- 3、compact(var1,var2…)
- 4、array_count_values(array)
- 5、array_combine(keys,values)
- 6、array_chunk(array,size,preserve_keys)
- 7、array_flip(array)
- 8、array_unshift/array_shift/array_push/array_pop
- 9、array_column
- 10、array_values
- 11、in_array()
- 12、array_push
- 13、array_map()
- 14、array_filter
- 15、array_diff
- 16、filter_var(variable, filter, options)
- 17、array_unique()
- 18、array_values/array_key_exists
- 19、array_column/array_multisort
php数组处理案例(即Array函数)
更多参考(约80个函数):
https://www.runoob.com/php/php-ref-array.html
1、arsort/asort/ksort/krsort
arsort(array,sortingtype)键值进行降序排序。
asort键值进行升序排序。
ksort() 键名进行升序排序。
krsort() 键名进行降序排序。
$arr = ["zhang"=>26,"li"=>30,"wang"=>5];arsort($arr);print_r($arr);//输出 Array ( [li] => 30 [zhang] => 26 [wang] => 5 )
2、key(array)
从当前内部指针位置返回元素键名。
current(array)返回数组中的当前元素的值。$arr2 = [“26","30","5"];$arr3 = [“zhang","li","wang"];$arr1 = [“zhang"=>26,"li"=>30,"wang"=>5];echo key($arr2);echo key($arr3);echo key($arr1);echo “<br>";echo current($arr2);echo current($arr3);echo current($arr1);//输出00zhang26zhang26
3、compact(var1,var2…)
创建一个包含变量名和它们的值的数组。
$zhang = ‘26’;$li = ‘30’;print_r(compact(“zhang","li"));//输出 Array ( [zhang] => 26 [li] => 30 )
4、array_count_values(array)
统计数组中所有值出现的次数。
$arr4 = [“A","Cat","Dog","A","Dog"];print_r(array_count_values($arr4));//输出 Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
5、array_combine(keys,values)
合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。
$arr2 = [“26","30","5"];$arr3 = [“zhang","li","wang"];print_r(array_combine($arr3,$arr2));//输出 Array ( [zhang] => 26 [li] => 30 [wang] => 5 )
6、array_chunk(array,size,preserve_keys)
把一个数组分割为新的数组块。
$arr3 = [“zhang","li","wang"];var_dump(array_chunk($arr3,2));//输出[[0=>’zhang’,1=>’li’,],[0=>’wang’]]
7、array_flip(array)
反转/交换数组中的键名和对应关联的键值。
$arr1 = [“zhang"=>26,"li"=>30,"wang"=>5];print_r(array_flip($arr1));//输出 Array ( [26] => zhang [30] => li [5] => wang )
8、array_unshift/array_shift/array_push/array_pop
$arr1 = [“zhang"=>26,"li"=>30,"wang"=>5];array_unshift($arr1,’liu’);//在数组开头插入一个或多个元素。array_shift($arr1);//删除数组中的第一个元素,并返回被删除的元素。array_push($arr1,’qin’);//向数组尾部插入一个或多个元素。array_pop($arr1);//删除数组中的最后一个元素。print_r($arr1);//输出// Array ( [0] => liu [zhang] => 26 [li] => 30 [wang] => 5 )// Array ( [li] => 30 [wang] => 5 )// Array ( [zhang] => 26 [li] => 30 [wang] => 5 [0] => qin )// Array ( [zhang] => 26 [li] => 30 )
9、array_column
返回输入数组中某个单一列的值。
$a = array(array(‘id’ => 5698,‘first_name’ => ‘Peter’,‘last_name’ => ‘Griffin’,),array(‘id’ => 4767,‘first_name’ => ‘Ben’,‘last_name’ => ‘Smith’,),array(‘id’ => 3809,‘first_name’ => ‘Joe’,‘last_name’ => ‘Doe’,));$last_names = array_column($a, ‘last_name’);输出:Array([0] => Griffin[1] => Smith[2] => Doe)
10、array_values
返回数组中所有的值(不保留键名)
$a=array(“Name"=>"Peter","Age"=>"41","Country"=>"USA");print_r(array_values($a));Array ( [0] => Peter [1] => 41 [2] => USA )
11、in_array()
in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
12、array_push
函数向数组尾部插入一个或多个元素array_push(array,value1,value2…)
13、array_map()
函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。
function myfunction($num){return($num*$num);}$a=array(1,2,3,4,5);print_r(array_map(“myfunction",$a));Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )或者:// 使用array_map将二维数组转换为一维数组,以便可以使用array_unique$uniqueArray = array_map(“serialize", array_unique(array_map(“serialize", $array)));// 将序列化后的字符串数组转回原来的数组格式$uniqueArray = array_map(“unserialize", $uniqueArray);// 达到去重复的目的print_r($uniqueArray);
14、array_filter
用回调函数过滤数组中的元素:
function test_odd($var){return($var & 1);}$a1=array("a","b",2,3,4);print_r(array_filter($a1,"test_odd"));Array ( [3] => 3 )
15、array_diff
计算数组的差集:
$array1 = array("a" => "green", "red", "blue", "red");$array2 = array("b" => "green", "yellow", "red");$result = array_diff($array1, $array2);print_r($result);# 返回一个数组,该数组包括了所有在 array 中但是不在任何其它参数数组中的值。注意键名保留不变。Array([1] => blue)
16、filter_var(variable, filter, options)
通过指定的过滤器过滤一个变量。 如果成功,则返回被过滤的数据。如果失败,则返回 FALSE。 过虑值(FILTER_VALIDATE_EMAIL)可能有:https://www.runoob.com/php/php-ref-filter.html
if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL)){echo("E-mail is not valid");}else{echo("E-mail is valid");}结果 :E-mail is not valid另外还有:filter_var_array()
17、array_unique()
函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。
$a=array(“a"=>"red","b"=>"green","c"=>"red");print_r(array_unique($a));Array ( [a] => red [b] => green )
18、array_values/array_key_exists
二维数组以name的去重
// 初始化一个关联数组来存储唯一名称的供应商$uniqueSuppliers = [];// 遍历原始数组foreach ($supplier_arr as $item) {// 使用name作为键,如果键不存在则添加到结果数组if (!array_key_exists($item['name'], $uniqueSuppliers)) {$uniqueSuppliers[$item['name']] = $item;}}// 将关联数组转换为索引数组(可选)$supplier_arr_unique = array_values($uniqueSuppliers);
19、array_column/array_multisort
二维数据排序
$temp= array_column($stock_details,'qty');array_multisort($temp, SORT_ASC, $stock_details);
