如何回应" id"?的价值

时间:2017-07-22 23:39:27

标签: php arrays json

{"2b44928ae11fb9384c4cf38708677c48":{
    "id":"115",
    "qty":3,
    "option":"{\"color\":{\"title\":\"Color\",
                          \"value\":\"\"
                         }
              }",
    "price":150,
    "name":"Nightwear",
    "shipping":"5",
    "tax":3,
    "image":"http:\/\/localhost\/plus\/uploads\/product_image\/product_115_1_thumb.jpg",
    "coupon":"",
    "rowid":"2b44928ae11fb9384c4cf38708677c48",
    "subtotal":450
    }
}

大家好, 这是我的阵列,我希望只回显" id"即我希望获得价值,因为' 115' key-" id"。请指导我如何为这个做一个foreach?我尝试了很多变化但没有效果:(

TIA:)

更新 - 我试过这个,但没有得到任何结果:

foreach($res as $k=>$t)
{
  echo $t["product_details"]["id"]; 
}

3 个答案:

答案 0 :(得分:3)

在将JSON用作数组之前,您需要先将其转换。使用json_decode()。

<?php 
$json='{"2b44928ae11fb9384c4cf38708677c48":{"id":"115","qty":3,"option":"{\"color\":{\"title\":\"Color\",\"value\":\"\"}}","price":150,"name":"Nightwear","shipping":"5","tax":3,"image":"http:\/\/localhost\/plus\/uploads\/product_image\/product_115_1_thumb.jpg","coupon":"","rowid":"2b44928ae11fb9384c4cf38708677c48","subtotal":450}}';

$array = json_decode($json, true);

foreach($array as $key=>$value){
    echo $value['id'];
}
?>

答案 1 :(得分:0)

假设您有一个像帖子中提供的对象数组,我已将您的对象放入数组中进行测试

<?php
$json = '[{"2b44928ae11fb9384c4cf38708677c48":{"id":"115","qty":3,"option":"{\"color\":{\"title\":\"Color\",\"value\":\"\"}}","price":150,"name":"Nightwear","shipping":"5","tax":3,"image":"http:\/\/localhost\/plus\/uploads\/product_image\/product_115_1_thumb.jpg","coupon":"","rowid":"2b44928ae11fb9384c4cf38708677c48","subtotal":450}},'.
         '{"2b44928ae11fb9384c4cf38708677c48":{"id":"116","qty":3,"option":"{\"color\":{\"title\":\"Color\",\"value\":\"\"}}","price":150,"name":"Nightwear","shipping":"5","tax":3,"image":"http:\/\/localhost\/plus\/uploads\/product_image\/product_115_1_thumb.jpg","coupon":"","rowid":"2b44928ae11fb9384c4cf38708677c48","subtotal":450}}]';
$json = json_decode($json);
foreach ($json as $object){
    $propsArray = get_object_vars($object);
    reset($propsArray);
    echo $object->{key($propsArray)}->id . "<br>\n";
}
exit;

此输出

115
116

尝试现场演示(https://eval.in/836364

答案 2 :(得分:0)

$json='{"2b44928ae11fb9384c4cf38708677c48":{"id":"115","qty":3,"option":"{\"color\":{\"title\":\"Color\",\"value\":\"\"}}","price":150,"name":"Nightwear","shipping":"5","tax":3,"image":"http:\/\/localhost\/plus\/uploads\/product_image\/product_115_1_thumb.jpg","coupon":"","rowid":"2b44928ae11fb9384c4cf38708677c48","subtotal":450}}';

$array = json_decode($json, true); // convert json string to array

$result = array_column($array, 'id'); // find matching array key and return values in array

foreach ($result as $value) { // echo each value with foreach loop
    echo $id . '<br>';
}