【发布时间】:2011-05-05 09:49:39
【问题描述】:
我有以下多维$array:
Array
(
[0] => Array
(
[domain] => example.tld
[type] => 2
)
[1] => Array
(
[domain] => other.tld
[type] => 2
)
[2] => Array
(
[domain] => blaah.tld
[type] => 2
)
)
我只想递归地搜索键和值上的所有数组,如果找到键/值则返回 true,如果没有找到则返回 false。
预期输出:
search_multi_array($array, 'domain', 'other.tld'); // Will return true
search_multi_array($array, 'type', 'other.tld'); // Will return false
search_multi_array($array, 'domain', 'google.com'); // Will return false
我想出了一个丑陋的方法,用这个函数在域中搜索所有键:
function search_multi_array($search_value, $the_array) {
if (is_array($the_array)) {
foreach ($the_array as $key => $value) {
$result = search_multi_array($search_value, $value);
if (is_array($result)) {
return true;
} elseif ($result == true) {
$return[] = $key;
return $return;
}
}
return false;
} else {
if ($search_value == $the_array) {
return true;
}
else
return false;
}
}
谁能做得更好,并以更优雅的方式匹配键和值?
【问题讨论】:
标签: php arrays multidimensional-array