json 객체를 반복하고 선택한 값을 배열로 푸시하려고합니다.배열을 조작하여 PHP에서 json 구조로 반환하는 방법은 무엇입니까?
$json = '
{
"canonicalUrl": "/v1/products(offers.type=deal_of_the_day)?format=json&apiKey=946n9vuhdkgeyz2qx2dpxd54",
"currentPage": 1,
"from": 1,
"partial": false,
"products": [
{
"active": true,
"activeUpdateDate": "2014-11-03T19:43:46",
"lowPriceGuarantee": true,
"name": "LG - 1.1 Cu. Ft. Mid-Size Microwave - Black",
"new": false,
"onSale": true,
"productId": 1219180376135,
"regularPrice": 124.99,
"salePrice": 99.99,
"sku": 5998225,
"source": "bestbuy",
"startDate": "2014-07-06",
"type": "HardGood"
},
{
"active": true,
"activeUpdateDate": "2014-11-03T18:03:02",
"lowPriceGuarantee": false,
"name": "Rocketfish In-Wall HDMI Cable",
"new": false,
"onSale": true,
"productId": 1218343205770,
"regularPrice": 29.99,
"salePrice": 24.99,
"sku": 2634897,
"source": "bestbuy",
"startDate": "2011-08-14",
"type": "HardGood"
}
],
"queryTime": "0.004",
"to": 2,
"total": 2,
"totalPages": 1,
"totalTime": "0.020"
}
';
$json_output = json_decode($json);
$pBB = array("title" => array(), "type" => array());
foreach($json_output->products as $obj){
array_push($pBB['title']," {$obj->name}");
array_push($pBB['type']," {$obj->type}");
}
echo json_encode($pBB);
위의 코드의 출력은 내가 어떤 생각
[
{
"title": "LG - 1.1 Cu. Ft. Mid-Size Microwave - Black",
"type": "HardGood"
},
{
"title": " Rocketfish In-Wall HDMI Cable",
"type": " HardGood"
}
]
아래로 반환 할
{
"title": [
" LG - 1.1 Cu. Ft. Mid-Size Microwave - Black",
" Rocketfish In-Wall HDMI Cable"
],
"type": [
" HardGood",
" HardGood"
]
}
입니까?
[]] is is 배열. 하지만 JS에서는 배열에 숫자가 아닌 키를 사용할 수 없습니다. ** ANY ** 숫자가 아닌 키는 오브젝트 ('{}')를 사용해야합니다. –
PHP 배열의 각 필드에서 "값 그룹화"를하는 것은 의미가 없습니다. '$ pBB [ 'title'] [0]'이 아닌'$ pBB [0] [ 'title']'에 접근하는 것이 더 합리적입니다 ... 그래서 수정해야합니다 ... – sjagr
'$ pBB = array (),'JSON과 PHP 모두에 대해 훨씬 논리적 인 것처럼 보입니다. ($ obj-> name, 'type'=> $ obj-> type) . – Wrikken