PHP функция для рекурсивного поиска ключа в ассоциативном массиве — PROG-TIME

PHP функция для рекурсивного поиска ключа в ассоциативном массиве

24.05.2022
Содержание:

В новой записи я вам покажу функцию которая находит все совпадения в массиве по ключу, на разных уровнях вложенности.

Что бы вы понимали что именно делает данная функция, давайте рассмотрим следующий массив.

В данном массиве нам нужно получить значения по ключу category_id на всех уровнях вложенности.

[
    "category_id" => 17027915,
    "title"=> "Мебель",
    "children" => [
	"category_id" => 17027914,
	"title" => "Матрасы",
	"children" => [
		[
		    "category_id" => 34196592,
		    "title" => "Матрас в кроватку для новорожденных до 3 лет",
		    "children" => [

		    ]
		],
		[
		     "category_id" => 53384679,
		     "title" => "Матрас беспружинный",
		     "children" => [

		     ]
		]
	]
    ]
]

Функция для решения данного вопроса написана ниже. Приятного использования!

function recursiveFind(array $array, $needle) { 
    $iterator = new RecursiveArrayIterator($array); 
    $recursive = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST); 
    $return = []; 
    foreach ($recursive as $key => $value) { 
	if ($key === $needle) { 
	    $return[] = $value; 
	} 
    } 
    return $return; 
}