Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环遍历字符串并在PHP中构建json数组_Php_Arrays - Fatal编程技术网

循环遍历字符串并在PHP中构建json数组

循环遍历字符串并在PHP中构建json数组,php,arrays,Php,Arrays,我从购物车请求返回了以下json字符串 [{"id":19,"name":"Memory","display_name":"Memory","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/19\/values.json","resource":"\/options\/19\/values"}},{"id":20,"name":"Add Keyboard & M

我从购物车请求返回了以下json字符串

[{"id":19,"name":"Memory","display_name":"Memory","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/19\/values.json","resource":"\/options\/19\/values"}},{"id":20,"name":"Add Keyboard & Mouse","display_name":"Add Keyboard & Mouse","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/20\/values.json","resource":"\/options\/20\/values"}},{"id":21,"name":"Monitor","display_name":"Monitor","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/21\/values.json","resource":"\/options\/21\/values"}},{"id":22,"name":"Operating System","display_name":"Operating System","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/22\/values.json","resource":"\/options\/22\/values"}},{"id":23,"name":"AntiVirus","display_name":"AntiVirus","type":"RB","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/23\/values.json","resource":"\/options\/23\/values"}}]
我需要循环上述内容并提取id的每个值“

然后,我为每个值调用另一个url。 这将返回一个json字符串(对于id=19):

id=20

[{"id":75,"option_id":20,"label":"No (Default)","sort_order":0,"value":"No (Default)"},{"id":76,"option_id":20,"label":"Yes (+$18)","sort_order":1,"value":"Yes (+$18)"}]
我现在需要将所有这些结合起来,并作为一个json数组进行回显

所以问题是。 1.如何将第一个转换为数组并循环。 2.将返回的所有字符串合并到一个json数组中

沃比先生

  • 使用
  • 使用
  • 如果您的PHP版本较旧,并且没有这些函数,则上述页面中的注释将引用其他实现

    大约:

    $inJSON = <<<EOF
    [
    {"id":19,"name":"Memory","display_name":"Memory","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/19\/values.json","resource":"\/options\/19\/values"}},
    {"id":20,"name":"Add Keyboard & Mouse","display_name":"Add Keyboard & Mouse","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/20\/values.json","resource":"\/options\/20\/values"}},
    {"id":21,"name":"Monitor","display_name":"Monitor","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/21\/values.json","resource":"\/options\/21\/values"}},
    {"id":22,"name":"Operating System","display_name":"Operating System","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/22\/values.json","resource":"\/options\/22\/values"}},
    {"id":23,"name":"AntiVirus","display_name":"AntiVirus","type":"RB",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/23\/values.json","resource":"\/options\/23\/values"}}
    ]
    EOF;
    
    $decode = json_decode($inJSON);
    foreach ($decode as $key => $item) {
       echo "Id:" . $item->id . "\n";
    }
    

    $inJSON=Use
    json_decode()
    /
    json_encode()
    到目前为止你做了什么?你搜索过谷歌或php.net吗?谢谢。我(在循环中)使用了$curlProductData=str_replace(“[”,“,$curlProductData);$curlProductData=str_replace(“],“,”,“,$curlProductData);$finalString=$finalString.$curlProductData;}然后在循环外$finalString=substr\u replace($finalString,“,-1);$finalString='['.$finalString.']];这给了我所需的格式。echo$finalString;@user3193843欢迎兄弟!编码快乐!
    $inJSON = <<<EOF
    [
    {"id":19,"name":"Memory","display_name":"Memory","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/19\/values.json","resource":"\/options\/19\/values"}},
    {"id":20,"name":"Add Keyboard & Mouse","display_name":"Add Keyboard & Mouse","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/20\/values.json","resource":"\/options\/20\/values"}},
    {"id":21,"name":"Monitor","display_name":"Monitor","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/21\/values.json","resource":"\/options\/21\/values"}},
    {"id":22,"name":"Operating System","display_name":"Operating System","type":"S",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/22\/values.json","resource":"\/options\/22\/values"}},
    {"id":23,"name":"AntiVirus","display_name":"AntiVirus","type":"RB",
      "values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/23\/values.json","resource":"\/options\/23\/values"}}
    ]
    EOF;
    
    $decode = json_decode($inJSON);
    foreach ($decode as $key => $item) {
       echo "Id:" . $item->id . "\n";
    }
    
        $firstJSONArray = json_decode('[{"id":19,"name":"Memory","display_name":"Memory","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/19\/values.json","resource":"\/options\/19\/values"}},{"id":20,"name":"Add Keyboard & Mouse","display_name":"Add Keyboard & Mouse","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/20\/values.json","resource":"\/options\/20\/values"}},{"id":21,"name":"Monitor","display_name":"Monitor","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/21\/values.json","resource":"\/options\/21\/values"}},{"id":22,"name":"Operating System","display_name":"Operating System","type":"S","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/22\/values.json","resource":"\/options\/22\/values"}},{"id":23,"name":"AntiVirus","display_name":"AntiVirus","type":"RB","values":{"url":"https:\/\/store-v035aw9.mybigcommerce.com\/api\/v2\/options\/23\/values.json","resource":"\/options\/23\/values"}}]');
    
        $finalArray = array();
    
        foreach ($firstJSONArray as $record) {
            $itemID = $record->id;
    
            // get data for each ID from your API like you have given example of 18 and 19 and store the push data to final array
    
            $finalArray[] = "json_data_from_api_for_particular_id";
        }
    
        echo json_encode($finalArray);