Удалить ключи из многомерного массива

У меня есть имя массива $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 ответ

Решение

При циклическом использовании массива foreachобычно делается копия. Изменение чего-либо в копии, конечно, не влияет на оригинал. Попробуй это:

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

& причины $bla быть ссылкой вместо копии. Поэтому это должно решить вашу проблему.

Другие вопросы по тегам