循环遍历PHP中的数组不能按预期工作

时间:2014-04-02 11:10:17

标签: php arrays

我正在使用bigCommerece API检索以下数组,这是产品的选项列表。使用echo $curlProductOptions我看到以下内容回显到屏幕:

[
    {
        "id": 412,
        "option_id": 37,
        "display_name": "testSteveMemory",
        "sort_order": 0,
        "is_required": true
    },
    {
        "id": 413,
        "option_id": 34,
        "display_name": "Hard Drive (desktop)",
        "sort_order": 1,
        "is_required": true
    },
    {
        "id": 414,
        "option_id": 24,
        "display_name": "Include Keyboard & Mouse",
        "sort_order": 2,
        "is_required": true
    },
    {
        "id": 415,
        "option_id": 33,
        "display_name": "Memory",
        "sort_order": 3,
        "is_required": true
    }
]

所以我假设我在$curlProductOptions中有一个包含上述数据的数组。

我现在需要遍历每个元素并echo每个' option_id'。

我试过了:

foreach($curlProductOptions['option_id'] as $value)
{echo $value;}

for ($i = 0; $i < count($curlProductOptions); ++$i)
{echo 'optionID ='.$curlProductOptions[$i].option_id.'<br>';}

我也试着回应其中一个元素。

echo $curlProductOptions['option_id'][0];
echo $curlProductOptions[0]['option_id'];

我在这里不理解什么?

2 个答案:

答案 0 :(得分:3)

你有json编码的字符串。所以你需要先json_decode

尝试这样:

$curlProductOptions = json_decode($curlProductOptions,true);//create associative array
foreach($curlProductOptions['option_id'] as $value){
  echo $value;
}

答案 1 :(得分:1)

这对我来说很好用:

$curlProductOptions = json_decode($curlProductOptions, true);
foreach($curlProductOptions as $value){
  echo $value['option_id'];
}