猿问

在php中取消设置整个数组

这是我的代码,“设施”是一个数组。


foreach ($prestation['conciergeries'] as $item) {

                    unset(

                        $item->prestation_ids,

                        $item->email,

                        $item->home_title,

                        $item->home_schedule,

                        $item->address,

                        $item->facility_ids,

                        $item['facilities'] <- It doesn't works

                    );

                }

我可以使用 Unset 删除整个数组吗?


一只名叫tom的猫
浏览 112回答 3
3回答

弑天下

foreach不是那样工作的。你实际上unset是在你的 foreach 中创建的“镜像数组”,你不会影响你正在循环的真实数组。对于您的示例,您可以使用for带有计数器的循环。&nbsp; &nbsp; for ($i = 0; $i < sizeof($prestation['conciergeries']); $i++) {&nbsp; &nbsp; &nbsp; &nbsp; unset($prestation['conciergeries'][$i]['facilities']);&nbsp; &nbsp; }

侃侃尔雅

是的,您可以取消设置表格unset($prestation['conciergeries']);,但如果您的意思是清空表格,请使用$prestation['conciergeries'] = [];

天涯尽头无女友

$itemin yourforeach是对变量的正确引用,如果它是一个对象,你可以unset使用它的属性,它会反映在数组中,但是你不能$item直接取消设置,因为它就像foreach循环中的局部变量($item将不再存在未设置后的循环,但数组条目不受影响)。您可以将 foreach 与这样的键一起使用:foreach($prestation['conciergeries'] as $key => $item){&nbsp; &nbsp; unset($item->prestation_ids); //will work deleting item property&nbsp; &nbsp; unset($prestation['conciergeries'][$key]); //use key instead to unset array entry}
随时随地看视频慕课网APP
我要回答