我想从所有内部数组中删除特定的数组键。我知道有一个名为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]?
答案 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]);