首页 > 解决方案 > php根据数组中的键获取值

问题描述

我正在尝试使用从名为 $houses 的数组中获得的所有代码获取一个新数组。我循环通过它。要获得我尝试过的代码$house['code']这适用于 dd 但不适用于$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 $houses:

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
]
]

标签: phparrayslaravel

解决方案


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", ....]

推荐阅读