簡體   English   中英

通過鍵 PHP 訪問多維數組的問題

[英]Problem accessing multidimensional array by key PHP

我有一個多維數組,我需要循環訪問第二級數組中的所有數組。 該數組來自對 API 的請求。


Array
(
    [0] => Array
(
    [docGridArray] => Array
        (
            [0] => Array
                (
                    [A] => pt_BR
                    [B] => en_US
                    [C] => pt_PT
                    [D] => es_MX
                    [E] => en_CA 
                )
        )

    [successCount] => 18
    [totalCount] => 18
)
1
)

我需要的數組是 docGridArray,但我無法訪問。 我在foreach循環中嘗試了許多變體,但主要是我得到的是警告:非法字符串偏移

這是我到目前為止嘗試過的:

    //This one gives me the Illegal string offset
    foreach ((array)$response[0]['docGridArray'] as $item ){
          echo $item;
    }
    //This one works great
    foreach ((array)$response[0] as $item ){
          echo $item;
    }
    //This one gives me Warning: Invalid argument supplied for foreach()
    foreach ($response[0] as $item ){
          echo $item;
    }

我似乎無法使用字符串鍵訪問。

結果是一個對象。

試試這個,告訴我這是否有效:

$you_array = json_decode(json_encode($api_result), true);    
foreach(array_column($your_array, "docGridArray") as $res){
        //your code
    }

玩得開心 :)

您可以像這樣訪問子數組 docGridArray 中的項目:

foreach ($response[0]['docGridArray'] as $item ){
      echo $item['docCodeLanguage']; 
}

正如@lucas 所提到的,您必須在循環之前解碼您的響應。

您不應直接訪問$response[0] ,除非您確定端點將始終只返回 1 個項目。

您可以完成此示例的工作:

$response = [
    [
        'docGridArray' => [
            [
                    'docCodeLanguage' => 'pt_BR',
                    'docCommunity' => "something 1",
                    'docCommunityNoLink' => "something 2",
                    'docDomain' => "something 3",
                    'docExtIcon' => "something 4"
            ]
        ],
        'successCount' => 18,
        'totalCount' => 18,
    ]
];

foreach ($response as $item) {
    foreach($item['docGridArray'] as $document) {
        foreach($document as $key => $element) {
                echo $key . ' - ' . $element . "\n";    
        }
    }
}

/* will print:
docCodeLanguage - pt_BR
docCommunity - something 1
docCommunityNoLink - something 2
docDomain - something 3
docExtIcon - something 4
*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM