循环遍历字符串并在PHP中构建json数组
我从购物车请求返回了以下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
[{"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数组中
沃比先生
$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=Usejson_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);