sort() - 以升序对数组排序
$numbers=array(3,5,1,22,11); sort($numbers);
$cars=array("Volvo","BMW","SAAB"); sort($cars);
rsort() - 以降序对数组排序
$numbers=array(3,5,1,22,11); rsort($numbers);
$cars=array("Volvo","BMW","SAAB"); rsort($cars);
asort() - 根据值,以升序对关联数组进行排序
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); asort($age);
ksort() - 根据键,以升序对关联数组进行排序
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); ksort($age);
arsort() - 根据值,以降序对关联数组进行排序 $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); arsort($age);
krsort() - 根据键,以降序对关联数组进行排序
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
krsort($age);
array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。该函数等于多次调用 $array[] = $value
$a=array("red","green");
array_push($a,"blue","yellow");
$arr[] = $value; 给数组增加一个值,使用效果和array_push是相同的。
$result[] = $region_id_arr;
array_column - 从记录集中取出 data_state列:
array_multisort - 返回一个升序排列的数组:
PHP 二维数组 根据某个字段排序
1. array_multisort(array_column($lists,'data_state'),SORT_DESC,$lists);
2.<?php
$data = [
[
'id' => '168ac7f8-c918-4e99-90ee-5d7590fe61ce',
'name' => 'Arthur Dent',
],
[
'id' => 'e3ad45ee-7cae-4cca-bd7b-2eb6b57b6457',
'name' => 'Ford Prefect',
],
[
'id' => 'a426aef2-19e2-412a-8339-5458cf6ae416',
'name' => 'Trillian Astra',
],
];
$sortings = [
[
'field' => 'id',
'direction' => SORT_DESC,
],
];
$args = [];
$key = 0;
foreach ($sortings as $sorting) {
$args[$key] = array_column($data, $sorting['field']);
$args[$key + 1] = $sorting['direction'];
$key += 2;
}
$args[] = $data;
call_user_func_array('array_multisort', $args);
// $data is now sorted by ID in descending order.
?>
删除一个元素,且保持原有索引不变
使用 unset 函数,示例如下:
1 2 3 4 5 | <?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1]); //↑ 你想删除的key ?> |
输出:
Array (
[0] => a
[2] => c
)
使用 unset 并未改变数组的原有索引。如果打算重排索引(让索引从0开始,并且连续),可以使用 array_values 函数:
1 2 3 4 5 6 7 8 9 10 | $array = array_values($array); /* 输出 array(2) { [0]=> string(1) "a" [1]=> string(1) "c" } */ |
删除一个元素,不保持索引
使用 array_splice 函数,示例如下:
1 2 3 4 5 | <?php $array = array(0 => "a", 1 => "b", 2 => "c"); array_splice($array, 1, 1); //↑ 你想删除的元素的Offset ?> |
输出:
Array (
[0] => a
[1] => c
)
按值删除多个元素,保持索引
使用 array_diff 函数,示例如下:
1 2 3 4 5 | <?php $array = array(0 => "a", 1 => "b", 2 => "c"); $array = array_diff($array, ["a", "c"]); //└────────┘→ 你想删除的数组元素值values ?> |
输出:
Array (
[1] => b
)
与 unset 类似,array_diff 也将保持索引。
按键删除多个元素,保持索引
使用 array_diff_key 函数,示例如下:
1 2 3 4 5 6 | <?php
$array = array(0 => "a", 1 => "b", 2 => "c"); $array = array_diff_key($array, [0 => "xy", "2" => "xy"]); //↑ ↑ 你想删除的数组键keys ?> |
输出:
Array (
[1] => b
)
与 unset 类似,array_diff_key 也将保持索引。