【问题标题】:How to use foreach to create variables from a multidimensional array如何使用 foreach 从多维数组中创建变量
【发布时间】:2019-08-30 13:11:24
【问题描述】:

我正在尝试使用 foreach 从多维数组创建变量,但无法访问嵌套数组。

我尝试在当前的 foreach 命令中再次使用 foreach,但我认为数组格式的某些内容不允许我这样做。

PHP:

$response = curl_exec($cURL);

$result = json_decode($response, true);

$someArray = $result;
foreach ($someArray as $key => $value) {;
}

curl_close($cURL);

print $value["registration"];
print $value["make"];
print $value["model"];
print $value["fuelType"];
print $value["primaryColour"];

这正是我接收数组的方式。我可以为注册、制造、模型、firstUsedDate、fuelType 和primaryColour 创建变量。

array(
    [0] => array(
        [registration]  => DU11LVA
        [make]          => MINI
        [model]         => MINI(R57)
        [firstUsedDate] => 2011.03.05
        [fuelType]      => Diesel
        [primaryColour] => White

        [motTests]      => array(

            [0] => array(
                [completedDate]  => 2018.04.1116:00:30
                [testResult]     => PASSED
                [expiryDate]     => 2019.04.10
                [odometerValue]  => 45283
                [odometerUnit]   => mi
                [motTestNumber]  => 138359719457

                [rfrAndComments] => array(
                    [0] => array(
                        [text] => Nearside Front Road wheel with a slightly distorted bead rim INSIDE (4.2.A.1a) 
                        [type] => ADVISORY)))

            [1] => array(
                [completedDate]  => 2018.04.1110:22:54
                [testResult]     => FAILED
                [odometerValue]  => 45283
                [odometerUnit]   => mi
                [motTestNumber]  => 652014545840

                [rfrAndComments] => array(
                    [0] => array(
                        [text] => Nearside Front Road wheel with a slightly distorted bead rim INSIDE (4.2.A.1a) 
                        [type] => ADVISORY)
                    [1] => array(
                        [text] => Nearside Front Shock absorber has a serious fluid leak (2.7.3) 
                        [type] => FAIL)))

            [2] => array(
                [completedDate]  => 2017.04.0610:27:08
                [testResult]     => PASSED
                [expiryDate]     => 2018.04.08
                [odometerValue]  => 37579
                [odometerUnit]   => mi
                [motTestNumber]  => 605834707501

                [rfrAndComments] => array())

我正在尝试获取 expiryDate 和 odometerValue。

【问题讨论】:

  • 我正在尝试获取 expiryDate 和 odometerValue这是你的问题吗?
  • 这是我见过的使用 foreach 访问数组的 wierdest 方式
  • 如果您正在寻找特定的任何元素,例如expiryDateodometerValue,只需使用 print_r()var_dump() 查看数组结构,然后按照 path 到达您的目标,例如echo $someArray[0]['motTests'][0]['expiryDate'];echo $someArray[0]['motTests'][0]['odometerValue'];

标签: php arrays variables multidimensional-array


【解决方案1】:

您有一个包含其他数组的数组,因此请保持简单并仅使用 foreach 循环,当您想要内部数组中的某些内容时,您可以启动另一个 foreach 循环来处理它。

使用循环处理的代码也应该存在于 foreach 中,而不是在它之后编码。

$response = curl_exec($cURL);

$result = json_decode($response, true);
curl_close($cURL);

foreach ($result as $value) {    

    print $value["registration"];
    print $value["make"];
    print $value["model"];
    print $value["fuelType"];
    print $value["primaryColour"];

    foreach ($value['motTests'] as $mot) {
        print $mot['expiryDate'];
        print $mot['odometerValue'];
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    相关资源
    最近更新 更多