PHP Поиск массива в многомерном массиве по значению ⇐ Php
-
Гость
PHP Поиск массива в многомерном массиве по значению
Мой многомерный массив
$userdb = массив( множество( 'имя' => '123', 'заказ' => '8875', множество( 'имя' => 'таблица', 'ширина' => '600', 'длина' => '400' ) ), множество( 'имя' => '124', 'заказ' => '9877', множество( 'искусство' => '024', множество( 'имя' => 'таблица', 'ширина' => '3258', 'длина' => '600' ) ) ) ); Задача. По слову «таблица» найдите массив, в котором она находится. Выведите эти простые массивы. При этом вложенность может быть бесконечно глубокой. Спасибо
Если вы используете Foreach, то вам необходимо указать степень вложенности массива. Что, если степень вложенности является динамической?
Я думаю, нам нужна комбинация функций, возможно, array_search и функция формирования нового массива
Я попытался преобразовать массив в простой. Но мне нужно найти ширину и длину.
$objTmp = (объект) array('aFlat' => array()); array_walk_recursive($userdb, function($v,$k,$t) { return $t->aFlat[] = $v;}, $objTmp); var_dump ($objTmp->aFlat); Я думал сначала найти ключ массива с помощью array_keys(), но функция ищет только внутри первого вложения
print_r(array_keys($userdb, "таблица")); Множество ( ) Ожидаемый результат
Массив ( множество( 'имя' => 'таблица', 'ширина' => '600', 'длина' => '400' ), множество( 'имя' => 'таблица', 'ширина' => '3258', 'длина' => '600' ) )
Мой многомерный массив
$userdb = массив( множество( 'имя' => '123', 'заказ' => '8875', множество( 'имя' => 'таблица', 'ширина' => '600', 'длина' => '400' ) ), множество( 'имя' => '124', 'заказ' => '9877', множество( 'искусство' => '024', множество( 'имя' => 'таблица', 'ширина' => '3258', 'длина' => '600' ) ) ) ); Задача. По слову «таблица» найдите массив, в котором она находится. Выведите эти простые массивы. При этом вложенность может быть бесконечно глубокой. Спасибо
Если вы используете Foreach, то вам необходимо указать степень вложенности массива. Что, если степень вложенности является динамической?
Я думаю, нам нужна комбинация функций, возможно, array_search и функция формирования нового массива
Я попытался преобразовать массив в простой. Но мне нужно найти ширину и длину.
$objTmp = (объект) array('aFlat' => array()); array_walk_recursive($userdb, function($v,$k,$t) { return $t->aFlat[] = $v;}, $objTmp); var_dump ($objTmp->aFlat); Я думал сначала найти ключ массива с помощью array_keys(), но функция ищет только внутри первого вложения
print_r(array_keys($userdb, "таблица")); Множество ( ) Ожидаемый результат
Массив ( множество( 'имя' => 'таблица', 'ширина' => '600', 'длина' => '400' ), множество( 'имя' => 'таблица', 'ширина' => '3258', 'длина' => '600' ) )
Мобильная версия