/ / Pesquisar uma matriz multidimensional php [duplicado] - php, matrizes, matriz multidimensional

Pesquisar uma matriz multidimensional php [duplicado] - php, matrizes, matriz multidimensional

Duplicar Possível:
php. subir o array multidimensional?

Eu tenho uma arrumação multidimensional que contém matrizes e objetos. Eu tenho que procurar um valor nele. Como eu posso fazer?

view Object
(
[db_table] => views_view
[base_table] => users
[args] => Array
(
)

[use_ajax] =>
[result] => Array
(
)

[pager] => Array
(
[use_pager] =>
[items_per_page] => 10
[element] => 0
[offset] => 0
[current_page] => 0
)

[old_view] => Array
(
[0] =>
)

[vid] => 1
[name] => userone
[description] => userone
[tag] =>
[view_php] =>
[is_cacheable] => 0
[display] => Array
(
[default] => views_display Object
(
[db_table] => views_display
[vid] => 1
[id] => default
[display_title] => Defaults
[display_plugin] => default
[position] => 1
[display_options] => Array
(

Assim o array continua. Como posso pesquisar se um valor existe?

Respostas:

2 para resposta № 1

Se você quer apenas descobrir se um certo valor existe e nada mais, isso é trivial usando iteradores recursivos:

$found = false;
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $value) {
if ($value == "theValueImLookingFor") {
$found = true;
break;
}
}

Não é muito mais complexo escrever isso em uma função recursiva:

function recursive_in_array($array, $needle) {
foreach ($array as $value) {
$isIterable = is_object($value) || is_array($value);
if ($value == $needle || ($isIterable && recursive_in_array($value, $needle))) {
return true;
}
}
return false;
}