2017-07-16 63 views
-2

我在php.I的工作人員有其中muliple數據來自如下圖所示如何做的JSON數據組相同的密鑰

{ 
    "result": [ 
     { 
      "id": "1", 
      "imgId": "1", 
      "gallery_name": "Schools DNA Gallery", 
      "gallery_desc": "Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status": "1", 
      "image_name": "sdna_gallery_img_5662a31fb4ca9.jpg", 
      "image_tittle": "2.jpg", 
      "image_url": "assets/uploads/school/410920433/gallery/10803076" 
     }, 
     { 
      "id": "1", 
      "imgId": "3", 
      "gallery_name": "Schools DNA Gallery", 
      "gallery_desc": "Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status": "1", 
      "image_name": "sdna_gallery_img_5662a469c88aa.jpg", 
      "image_tittle": "Gallery-img-1-updated here", 
      "image_url": "assets/uploads/school/410920433/gallery/10803076" 
     } 
    ] 
} 

怎麼樣顯示JSON數據中的某些數據有兩個相同的密鑰JSON數據

{ 
    "result": [ 
     { 
      "id": "1", 
      "imgId": "1", 
      "gallery_name": "Schools DNA Gallery", 
      "gallery_desc": "Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status": "1", 
      "items": [  
       { 
        "image_name": "sdna_gallery_img_5662a31fb4ca9.jpg", 
        "image_tittle": "2.jpg", 
        "image_url": "assets/uploads/school/410920433/gallery/10803076" 
       }, 
       { 
        "image_name": "sdna_gallery_img_5662a469c88aa.jpg", 
        "image_tittle": "Gallery-img-1-updated here", 
        "image_url": "assets/uploads/school/410920433/gallery/10803076" 
       } 
      ] 
     } 
    ] 
} 

我的意思是做一個相同的鍵值的數組。通過一點搜索,我發現這可能與foreach循環,但如何實現與多個鍵不知道。 我嘗試了代碼。但沒得到最優解

$items=json_decode($json,true); 
foreach ($items as $item) { 
foreach ($item as $key => $value) 
{ 
    if(is_array($value)) { 

     foreach ($value as $subkey => $part) 
     { 
      foreach ($part as $partkey => $partvalue) 
      { 
       echo $key .' '. $subkey . ' ['.$partkey.'] => '.$partvalue."\n"; 
      } 
     } 
    } else { 

    echo $key.' => '.$value."\n"; 
    } 
} 
+1

你真的應該嘗試自己先解決問題。告訴我們你做了一些努力並嘗試了一些東西。我們很樂意爲您提供_existing_的代碼,但我們不會爲您效勞。 SO不是免費的編碼服務。 –

+0

然後告訴我們你的嘗試。在閱讀時,請閱讀:[如何創建最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)以及[我如何提出一個好問題?](http ://stackoverflow.com/help/how-to-ask) –

+0

使用任何其他代碼/信息更新您的問題。發表評論時無法閱讀。 –

回答

0

代碼:(Demo

$json='{ 
    "statusCode": 800, 
    "status": "Sucess", 
    "result": [ 
     { 
      "id": "1", 
      "imgId": "1", 
      "gallery_name": "Schools DNA Gallery", 
      "gallery_desc": "Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status": "1", 
      "image_name": "sdna_gallery_img_5662a31fb4ca9.jpg", 
      "image_tittle": "2.jpg", 
      "image_url": "assets/uploads/school/410920433/gallery/10803076" 
     }, 
     { 
      "id": "1", 
      "imgId": "3", 
      "gallery_name": "Schools DNA Gallery", 
      "gallery_desc": "Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status": "1", 
      "image_name": "sdna_gallery_img_5662a469c88aa.jpg", 
      "image_tittle": "Gallery-img-1-updated here", 
      "image_url": "assets/uploads/school/410920433/gallery/10803076" 
     } 
    ] 
}'; 

$array=json_decode($json,true); 
foreach($array['result'] as $a){ 
    if(!isset($result[$a['id']])){ 
     $result[$a['id']]=array_slice($a,0,5); // only retain the first subarray's first 5 identifying elements 
    } 
    $result[$a['id']]['items'][]=array_slice($a,5); // push last 3 elements from each subarray 
} 
$result=array_slice($array,0,2)+["result"=>array_values($result)]; // re-index subarrays, and prepend the first two elements 
var_export(json_encode($result)); 

輸出:

'{ 
    "statusCode":800, 
    "status":"Sucess", 
    "result":[ 
     { 
      "id":"1", 
      "imgId":"1", 
      "gallery_name":"Schools DNA Gallery", 
      "gallery_desc":"Gallery desc for Demo public senior secondary school-1 Status : published", 
      "gallery_status":"1", 
      "items":[ 
       { 
        "image_name":"sdna_gallery_img_5662a31fb4ca9.jpg", 
        "image_tittle":"2.jpg", 
        "image_url":"assets\\/uploads\\/school\\/410920433\\/gallery\\/10803076" 
       }, 
       { 
        "image_name":"sdna_gallery_img_5662a469c88aa.jpg", 
        "image_tittle":"Gallery-img-1-updated here", 
        "image_url":"assets\\/uploads\\/school\\/410920433\\/gallery\\/10803076" 
       } 
      ] 
     } 
    ] 
}' 
相關問題