如何在PHP中循环通过JSON对象?

如何在PHP中循环通过JSON对象?,php,json,Php,Json,我在PHP中有一个变量$arr。它包含以下数据 这是我的PHP代码 $data = array( 'Request' => 'StockStatus', 'merchant_id' => 'shipm8', 'hash' => '09335f393d4155d9334ed61385712999' ); $url = 'https://ship2you.com/ship2you/'; $c

我在PHP中有一个变量
$arr
。它包含以下数据

这是我的PHP代码

    $data = array(
        'Request' => 'StockStatus',
        'merchant_id' => 'shipm8',
        'hash' => '09335f393d4155d9334ed61385712999'
        );

    $url = 'https://ship2you.com/ship2you/';

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_PORT, 443);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($ch);
    curl_close($ch);

    $arr = json_decode($result, true);

    foreach ($arr as $value) {
        echo $value['packagename'];
    }

我想循环一下。我怎样才能做到呢?我尝试使用foreach,但它给了我错误。提前谢谢

json_decode($json, true);

如果第二个参数为true,它将返回数组。如果不是您想要的,请显示您拥有的代码。

您必须将
CURL输出字符串解码两次:-

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
curl_close($ch);

$arr = json_decode($result);



foreach ($arr as $arr_item) {
   echo $arr_item->user_id;
}
$arr = json_decode(json_decode($result, true),true);

foreach ($arr as $value) {
    echo "<pre/>";print_r($value['packagename']);
}
$arr=json\u decode(json\u decode($result,true),true);
foreach($arr作为$value){
echo”“;print_r($value['packagename']);
}
注:-@Xatenev提到了正确的事情:-


json已转义引号。当带有转义引号的json被传递到
json\u decode()
时,它只会删除所有转义序列。再次调用
json_decode()
时,它会正确地对其进行解码

显示您是如何使用foreach的?同时发布准确的错误消息。可能是@Anant的重复我已经粘贴了我的php代码。来吧,发布代码!现在,您添加了一个片段,但仍然不是您提到的foreach…为什么我要做两次呢?@AliZia似乎是双重编码的,或者可以说嵌套编码的字符串来自
CURL
requests我希望我的API提供程序会提到它。非常感谢。@Anant@AliZia这个json已经转义了引号。当带有转义引号的json被传递到
json\u decode()
时,它只会删除所有转义序列。再次调用
json\u decode()
时,它会正确解码。@AliZia很高兴能帮助您。干杯:):)