如何从多维数组中删除特定键

时间:2018-08-30 18:48:10

标签: php arrays unset

我想从所有内部数组中删除特定的数组键。我知道有一个名为unset()的函数,该函数使用索引或对象名称将其切出。但是我无法在下面的代码中实现我的情况。

[answers] => Array
            (
                [0] => Array
                    (
                        [title] => First Answer 1
                        [image] => 
                        [isCorrect] => 1
                    )

                [1] => Array
                    (
                        [title] => Second Answer
                        [image] => 
                        [isCorrect] => 0
                    )

                [2] => Array
                    (
                        [title] => Third Answer
                        [image] => 
                        [isCorrect] => 0
                    )

                [3] => Array
                    (
                        [title] => Fourth Answer
                        [image] => 
                        [isCorrect] => 0
                    )

            )

如何从[answers]中的每个数组中删除[image]?

3 个答案:

答案 0 :(得分:1)

"-tags Tag"确实没有理由不起作用(假设您就是这样说的,“我无法执行我的情况”),除非您这样做是这样的:

unset

它不能那样工作,因为那里的foreach ($array['answers'] as $answer) { unset($answer['image']; } 并不引用原始数组。这是项目的副本,因为foreach循环会随其进行复制数组中每个值。

您需要获取外部数组的键,并在未设置的表达式中使用它。

$answer

答案 1 :(得分:0)

此代码通过在数组中查找值并删除该值来起作用。

foreach($answers as $key => $answer) {
  unset($answers[$key]['image']);
}

在这里观察到$ answer变量只是foreach循环内数组元素的临时副本...

答案 2 :(得分:0)

您可以只使用unset 例如:如果您要删除索引1,并选择第二个答案,就可以

unset($answers[1]);