2013-10-26 158 views
0

我有一個數組名稱$ json_output。從多維數組中刪除密鑰

array(3) { 
    ["ProductsSummary"]=> 
    array(2) { 
    ["TotalPages"]=> 
    int(2) 
    ["CurrentPage"]=> 
    int(1) 
    } 
    ["Products"]=> 
    array(60) { 
    [0]=> 
    array(3) { 
     ["LastShopUpdate"]=> 
     string(26) "/Date(1382716320000+0200)/" 
     ["Score"]=> 
     float(0.2208696) 
     ["ProductId"]=> 
     int(1306413101) 
     ["ArticleNumber"]=> 
    } 
    [1]=> 
    array(3) { 
     ["LastShopUpdate"]=> 
     string(26) "/Date(1382716320000+0200)/" 
     ["Score"]=> 
     float(0.2208696) 
     ["ProductId"]=> 
     int(1306413101) 
     ["ArticleNumber"]=> 
    } 

等等。我需要從每一箇中取消設置ProductId和LastShopUpdate。

我的嘗試:

<?php 
foreach($json_output["Products"] as $bla) 
unset($bla['ArticleNumber'], $bla['LastShopUpdate']); 
?> 

但它無法正常工作。我怎麼能這樣做?

回答

2

使用foreach循環訪問數組時,通常會進行復制。改變副本中的某些內容對原始文件沒有影響。試試這個:

foreach($json_output["Products"] as & $bla) 
    unset($bla['ArticleNumber'], $bla['LastShopUpdate']); 

&原因$bla是一個參考,而不是副本。因此它應該解決你的問題。

+1

非常感謝!我會接受答案,因爲它是可能的 –

+1

+1簡潔明瞭:) – MackieeE