用于匹配的PHP搜索阵列列

Dav*_*vid 4 php arrays search

我有一个如下所示的数组,它有多列.我想在第一列中搜索特定值,并返回匹配的行.这可能吗?

例如:

Array (
[0] => Array ( [id] => 1 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 ) 
[1] => Array ( [id] => 1 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 ) 
[2] => Array ( [id] => 2 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 
)
Run Code Online (Sandbox Code Playgroud)

因此,假设我想在"id"列中搜索"1"并显示结果.如何才能做到这一点?非常感谢!

Mar*_*ler 10

如果您正在使用PHP >= 5.5,那么您可以将新的array_column()array_keys()array_map()结合使用.

鉴于你的阵列,$array:

$keys = array_keys(array_column($array, 'id'), 1);
$new_array = array_map(function($k) use ($array){return $array[$k];}, $keys);
Run Code Online (Sandbox Code Playgroud)

见演示


Mar*_*ner 5

由于您有嵌套Array,因此需要两次迭代:

$filtered = array();
$rows = Your Array;
foreach($rows as $index => $columns) {
    foreach($columns as $key => $value) {
        if ($key == 'id' && $value == '1') {
            $filtered[] = $columns;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该可以完成工作。