我喜欢在数组上执行搜索,并在找到匹配项时返回所有值。数组中的关键[name]是我正在搜索的内容。

Array (
[0] => Array
    (
        [id] => 20120100
        [link] => www.janedoe.com
        [name] => Jane Doe
    )
[1] => Array
    (
        [id] => 20120101
        [link] => www.johndoe.com
        [name] => John Doe
    )
)

如果我搜索 John Doe ,它将返回。
Array
(
    [id] => 20120101
    [link] => www.johndoe.com
    [name] => John Doe
)

根据我要搜索的内容来重命名数组会更容易吗?除了上面的数组,我还可以生成以下内容。
Array (
[Jane Doe] => Array
    (
        [id] => 20120100
        [link] => www.janedoe.com
        [name] => Jane Doe
    )
[John Doe] => Array
    (
        [id] => 20120101
        [link] => www.johndoe.com
        [name] => John Doe
    )
)

最佳答案

$filteredArray =
array_filter($array, function($element) use($searchFor){
  return isset($element['name']) && $element['name'] == $searchFor;
});

需要PHP 5.3.x

关于php - 搜索数组并找到匹配项后返回所有键和值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9439905/

10-12 22:08