可能重复:
How to search by key=>value in a multidimensional array in PHP
PHP search for Key in multidimensional array
如何搜索数组值并获取密钥?
实施例: 搜索id 1 =键0 要么 搜索名称Frank = key 1
Array
(
[0] => Array
(
[id] => 1
[name] => Bob
[url] => http://www.bob.com.br
)
[1] => Array
(
[id] => 2
[name] => Frank
[url] => http://www.frank.com.br
)
)
THKS。 阿德
答案 0 :(得分:1)
foreach($array as $value) {
$result = array_search('Frank', $value);
if($result !== false) break;
}
echo $result
答案 1 :(得分:0)
如果您不知道深度,可以执行以下操作,使用RecursiveIteratorIterator和RecursiveArrayIterator:
<?php
/*******************************
* array_multi_search
*
* @array array to be searched
* @input search string
*
* @return array(s) that match
******************************/
function array_multi_search($array, $input){
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($iterator as $id => $sub){
$subArray = $iterator->getSubIterator();
if(@strstr(strtolower($sub), strtolower($input))){
$subArray = iterator_to_array($subArray);
$outputArray[] = array_merge($subArray, array('Matched' => $id));
}
}
return $outputArray;
}
答案 2 :(得分:0)
不要认为有一个预先设定的功能, 但这里有一个:
function sub_array_search($array, $sub_key, $value, $strict = FALSE)
{
foreach($array as $key => $sub_array)
{
if($sub_array[$sub_key] == $value)
{
if(!$strict OR $sub_array[$sub_key] === $value)
{
return $key;
}
}
}
return FALSE;
}