PHP получить значение на основе ключа в массиве - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь получить новый массив со всеми кодами, которые я получаю из массива с именем $ Houses. Я зацикливаюсь на этом. Чтобы получить коды, которые я пробовал $house['code'] Это работает в ДД, но не в $code = $house['code'].
Я хотел бы знать, почему и как это можно решить.

$houses = $project['data']['houses'];
$codes = [];

foreach($houses as $house) {
    $code = array_column($house, 'code');
    //dd($house['code']);  //Returns the code "AB12-CD34-EF56-GH78"
    if(!$code) {
        continue;
    } else {
        array_push($codes, $code);
    }
}

dd($codes); //Returns []

РЕДАКТИРОВАТЬ:var_dump $ дома:

array:60 [
0 => array:30 [
    "id" =>
    "city" => ""
    "code" => "AB12-CD34-EF56-GH78"
    "streetName" => ""
    "houseNumber" => ""
    //And some other stuff that is not relevant to the question
]
]

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

array_column для восстановления столбца из массива внутри массива массивов. $house - это простой массив, в котором нет массивов. просто используйте $house['code']

$houses = $project['data']['houses'];
$codes = [];

foreach($houses as $house) {
    if(isset($house['code']) && $house['code']) {
        $codes[] = $house['code'];
    }
}

dd($codes); //Returns ["AB12-CD34-EF56-GH78","AB12-CD34-EF56-GH79", ....]
1 голос
/ 07 ноября 2019

Вместо этого цикла вы можете просто извлечь все code s из подмассивов с помощью:

$houses = $project['data']['houses'];
$codes = array_column($houses, 'code');
dd($codes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...