PHP数组排序 删除数组

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 也将保持索引。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值