0

php中有类似于 js中的findIndex的函数吗;

 $array = [
    [
              
         'name' => '1',
         'id' => 1,
    ],
    [
        'id' => 1,
        'name' => '2'
    ]
];

现在是可以使用

$found_key = array_search(1, array_column($array, 'id'));

这样的去实现 但是如果需求变一下 要查找二维数组中id不等于1的数组 只查找一个 查找到了就返回他的下标

有什么可以用的函数或者办法吗?

Loveyou 26
2019-04-29 提问
2 个回答
0

已采纳

你这个直接用循环处理就行了吧 。难道你觉得循环不够优雅?

reset($array);
$found_key = null;
while($current_element = current($array)) {
    if($current_element['id'] !== 1) {
        $found_key = key($array);
        break;
    }
    next($array);
}

当然,遍历数组其实更常用的是foreach

$found_key = null;
foreach($array as $key => $value) {
    if($value['id'] !== 1) {
        $found_key = $key;
        break;
    }
}
0

php本身并没有,但laravel框架提供的Collection类有个search方法

$array = [
    [
              
         'name' => '1',
         'id' => 1,
    ],
    [
        'id' => 1,
        'name' => '2'
    ]
];
$found_key = collect($array)->search(function ($item, $key) {
    return $item['id'] == 1;
});

撰写答案

推广链接