1.数组排序
<?php
// 数组排序
$arr = ['3'=>'3','a'=>'a','5'=>'5','b'=>'b','1'=>'1'];
// ksort():键名升序
$test = $arr;
ksort($test);
echo 'ksort:',print_r($test,true),'<br>';
// krsort():键名降序
krsort($test);
echo 'krsort:',print_r($test,true),'<br>';
// 按值排序
// arsort():对关联数组按照键值进行降序排序
arsort($arr);
echo 'arsort:',print_r($arr,true),'<br>';
// asort():对关联数组按照键值进行升序排序
asort($arr);
echo 'asort:',print_r($arr,true),'<br>';
// sort:按值升序,重排索引
sort($test);
echo 'sort: ',print_r($test,true),'<br>';
// rsort():按值降序,重排索引
rsort($test);
echo 'rsort: ',print_r($test,true),'<br>';
echo '<hr>';
// uksort():回调函数按键名升序
$test = $arr;
uksort($test,function($a,$b) {
return $a <=> $b;
});
echo 'uksort: ' , print_r($test,true),'<br>';
// uksort():回调函数按键名降序
$test =$arr;
uksort($test,function($a,$b) {
return $b <=> $a;
});
echo 'uksort: ', print_r($test,true),'<br>';
// usort():回调函数按值升序,重排索引
$test = $arr;
usort($test,function($a,$b) {
return $a <=> $b;
});
echo 'usort: ',print_r($test,true),'<br>';
// usort():回调函数按值降序,重排索引
usort($test,function($a,$b) {
return $b <=> $a;
});
echo 'usort: ',print_r($test,true),'<br>';
// 回调函数按值升序,键名不变
$test = $arr;
uasort($test,function($a,$b) {
return $a <=> $b;
});
echo 'uasort: ',print_r($test,true),'<br>';
// 回调函数按值降序,键名不变
uasort($test,function($a,$b) {
return $b <=> $a;
});
echo 'uasort: ',print_r($test,true),'<br>';
echo '<hr>';
// 自然排序:数字在前,字母在后
$arr1 = ['3'=>'3','a'=>'a','5'=>'5','b'=>'b','1'=>'1'];
natsort($arr1);
echo 'natsort: ', print_r($arr1,true),'<br>';
$test = $arr1;
natcasesort($test);
echo 'natcasesort: ', print_r($test,true),'<br>';
?>
2.数组合并
<?php
// array_merge():把一个或多个数组合并为一个数组,如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素
$a1 = ['a'=>'red','b'=>'green'];
$a2 = ['c'=>'blue','b'=>'yellow'];
print_r(array_merge($a1,$a2));
echo '<hr>';
// array_intersect():比较数组,返回两个数组的交集
$a1 = ['a'=>'red','b'=>'green','c'=>'blue','d'=>'yellow'];
$a2 = ['e'=>'red','f'=>'green','g'=>'blue'];
$res = array_intersect($a1,$a2);
print_r($res);
echo '<hr>';
// array_unique():删除数组中重复的值
$a = ['a'=>'red','b'=>'green','c'=>'red'];
print_r(array_unique($a));
echo '<hr>';
?>