2013-10-26 160 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