【问题标题】:Remove keys from multidimesional array从多维数组中删除键
【发布时间】:2013-11-05 17:08:22
【问题描述】:

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

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

【问题讨论】:

    标签: php arrays array-unset


    【解决方案1】:

    当使用foreach 循环数组时,通常会创建一个副本。当然,更改副本中的某些内容对原始文件没有影响。试试这个:

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

    &amp; 导致 $bla 成为引用而不是副本。因此,它应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多