常用数组函数

1 、array_column()

array_column(array,column_key,index_key);

$arr = [
    [
        'id' => 1,
        'name' => 'a'
    ],[
        'id' => 2,
        'name' => 'b',
    ], [
        'id' => 4,
        'name' => 'c'
    ], [
        'id' => 3,
        'name' => 'd'
    ]
];

print_r(array_column($arr,'name'));

//运行结果:Array ( [0] => a [1] => b [2] => c [3] => d )

print_r(array_column($arr,'name','id'));
//运行结果:Array ( [1] => a [2] => b [4] => c [3] => d )

print_r(array_column($arr, null, 'name'));
//运行结果:Array ( [a] => Array ( [id] => 1 [name] => a ) [b] => Array ( [id] => 2 [name] => b ) [c] => Array ( [id] => 4 [name] => c ) [d] => Array ( [id] => 3 [name] => d ) )

2 、array_search()

数组中搜索键值,并返回它的键名:

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
?>

运行结果:a

3 、array_splice()

1删除key 数组重新排序

$a1=array("0"=>"red","1"=>"green",'2'=>"black","3"=>'purl');
array_splice($a1,2,1);
print_r($a1);

结果:Array ( [0] => red [1] => green [2] => purl )

2删除key 用新的值替代删除的

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"purple","b"=>"orange");
print_r(array_splice($a1,0,2,$a2));
?>

结果:Array ( [a] => red [b] => green )


4 、current()

该函数返回数组中的当前元素的。

每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。

提示:该函数不会移动数组内部指针。要做到这一点,请使用 next() 和 prev() 函数。

<?php
$people = array("Bill", "Steve", "Mark", "David");

echo current($people) . "<br>";
?>


结果:Bill

5、array_filter()

加闭包函数过滤数组

$arr = array(
    array(
        'catid' => 2,
        'catdir' => 'notice',
    ),
    array(
        'catid' => 5,
        'catdir' => 'subject',
    ),
    array(
        'catid' => 6,
        'catdir' => 'news'
    ),
);

$catid = 5;
$res = array_filter($arr, function($param) use ($catid) {
    return $param['catid'] == $catid;
});
print_r($res);


结果:
array(1) {
  [1]=>
  array(2) {
    ["catid"]=>
    int(5)
    ["catdir"]=>
    string(7) "subject"
  }
}

6、uasort() 排序

//按基础价格从低到高排序
        uasort($data, function($a, $b) {
            if ($a['base_price']== $b['base_price']) return 0;
            return ($a['base_price']< $b['base_price'])?-1:1;
        });
        
        
        
         /* is_free降序 id升序*/
        uasort($list, function($a, $b) {
            if ($a['is_free'] > $b['is_free']) {
                return -1;
            } elseif ($a['is_free'] == $b['is_free']) {
                if ($a['id']==$b['id']) return 0;
                return ($a['id']<$b['id'])?-1:1;
            } else {
                return 1;
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值