[英]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.