从多维数组中删除键

时间:2013-10-26 16:43:14

标签: php arrays array-unset

我有一个数组名称$ 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']);
?>

但它不起作用。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

使用foreach循环遍历数组时,通常会制作副本。更改副本中的内容当然不会影响原件。试试这个:

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

&导致$bla成为参考而非副本。因此它应该解决您的问题。