@Kerm

Как из многомерного массива получить массив со значениями найденными по ключу?

Пример массива:

$array = [
            "PaymentInfo" => [
                "paymentInfo" => "олролро",
                "fileList" => [
                    "fileCode" => "3623"
                ],
            ],
            "PaymentInfo2" => [
                "paymentInfo2" => "олролро",
                "fileList" => [
                    "fileCode" => "3623"
                ],
                "files" => [
                        "name" => "dfgdfgd",
                        "file" => [
                                'fileCode' => "6486"
                            ]
                    ]
            ],
            "file" => 
                [
                    "fileCode" => "3623"
                ],[
                    "fileCode" => "3623"
                ]
        ];


В массиве может быть множество ключей fileCode на разных уровнях массива, нужно найти все и создать из них массив, что то типа [0 => "3623", 1 => "3650", 2 => "3670"]

Хотелось бы реализовать с помощью обычных php методов работающих с массивами, без написания вручную рекурсивных методов. Я попробовал array_map, array_column хотя там и пишут что они работают с многомерными массивами в итоге с подобным массивом они чего то не работают так как должны бы.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
0xD34F
@0xD34F
$fileCodes = [];
array_walk_recursive($array, function($v, $k) use(&$fileCodes) {
  if ($k === 'fileCode') {
    $fileCodes[] = $v;
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы