PHP多维数组按值搜索并获取键key

时间:2017-07-27
本文章向大家介绍PHP多维数组按值搜索并获取键key,需要的朋友可以参考一下。

我有一个数组,我想搜索uid并获取数组的键

假设我们有以下二维数组:

$userdb = array(
    array(
        'uid' => '100',
        'name' => 'Sandra Shush',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '5465',
        'name' => 'Stefanie Mcmohn',
        'pic_square' => 'urlof100'
    ),
    array(
        'uid' => '40489',
        'name' => 'Michael',
        'pic_square' => 'urlof40489'
    )
);

调用函数search_by_uid(100)应该返回0 (该元素所在数组的key值)

调用函数search_by_uid(40489)应该返回2(该元素所在数组的key值)。

search_by_uid函数应该如何写?

search_by_uid函数如下:

function searchForId($id, $array) {
   foreach ($array as $key => $val) {
       if ($val['uid'] === $id) {
           return $key;
       }
   }
   return null;
}

这会奏效。你应该这样称呼它:

$id = searchForId('100', $userdb);

重要的是要知道,如果你使用的是很重要的===运算符相比,类型必须完全相同,在这个例子中,你要查找的是字符串类型,因此只需使用==

在PHP(>= 5.5.0)的更高版本中,您可以使用单行程。

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