使用array_search()返回与搜索字符串不匹配的第一个元素的键

时间:2017-05-20 14:25:39

标签: php search multidimensional-array backend

如果array_search()有一种方法可以返回其第一次冲突的关键,就像我运行一样

$key = array_search(40489, array_column($userdb, 'uid'));

on

Array
(

    (1) => Array
        (
            (uid) => '5465',
            (name) => 'Stefanie Mcmohn',
            (pic_square) => 'urlof100'
        ),

    (2) => Array
        (
            (uid) => '40489',
            (name) => 'Michael',
            (pic_square) => 'urlof40489'
        )
);

理想情况下会返回

  

2

但我希望它返回

  

1

即第一个没有' uid' = 40489 &安培;

如果array_search()无法实现,那么还有其他方法可以使用循环吗?我试过了array_filter(),但无法让它发挥作用。

1 个答案:

答案 0 :(得分:1)

array_search描述中所述:

  

在数组中搜索给定值,并在成功时返回第一个相应的键

     

如果在数组中找到针,则返回针的键,否则返回FALSE。

因此,您无法使用array_search来搜索与您所需要的内容不相符的内容。而是编写自己的函数,例如:

$array = [];    // your array
foreach ($array as $key => $value) {
    if ($value['uid'] != '40489') {
        echo 'Key: ', $key;
        // use `break` to stop iterating over 
        // array as you already found what you need
        break;
    }
}