使用提供的数组列进行PHP多维数组搜索(使用PHP5 array_column)

时间:2016-01-08 12:42:39

标签: php arrays multidimensional-array

我需要有关数组搜索的帮助。数组示例是:

$users=Array
(
    0 => Array
    (
        'id' => 111,
        'name' => 'Sandra Shush',
        'sources' => '1234,678,780'
    ),

    1 => Array
    (
        'id' => 112,
        'name' => 'Stefanie Mcmohn',
        'sources' => '32,99,85'
    ),

    2 => Array
    (
        'id' => 113,,
        'name' => 'Michael',
        'sources' => '896,1213,1918'
    ),

    3 => Array
    (
        'id' => 113,,
        'name' => 'Michael',
        'sources' => '72'
    )
);

我需要从上面提供的数组中提取密钥,其中“sources”键与搜索字符串(整数)匹配。

我试过了:

$key = array_search('99', array_column( $users, 'sources') ); // false

但当然,没有机会用这种方法检索密钥。它仅在源键只有一个值时有效,例如:

$key = array_search('72', array_column( $users, 'sources') ); // 3

有没有办法实现这个目标? 谢谢

1 个答案:

答案 0 :(得分:0)

只需使用foreach循环和preg_match一样使用

$result = [];

foreach($users as $key => $value){
    if(preg_match("/\b99\b/",$value['sources']) !== false){
        $result[] = $key;
    }
}

print_r($result);

输出:

Array
(
    [0] => 1
)

Demo