为了账号安全,请及时绑定邮箱和手机立即绑定

在php中取消设置整个数组

在php中取消设置整个数组

PHP
一只名叫tom的猫 2022-07-22 10:11:51
这是我的代码,“设施”是一个数组。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 删除整个数组吗?
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

foreach不是那样工作的。你实际上unset是在你的 foreach 中创建的“镜像数组”,你不会影响你正在循环的真实数组。


对于您的示例,您可以使用for带有计数器的循环。


    for ($i = 0; $i < sizeof($prestation['conciergeries']); $i++) {

        unset($prestation['conciergeries'][$i]['facilities']);

    }


查看完整回答
反对 回复 2022-07-22
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

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



查看完整回答
反对 回复 2022-07-22
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

$itemin yourforeach是对变量的正确引用,如果它是一个对象,你可以unset使用它的属性,它会反映在数组中,但是你不能$item直接取消设置,因为它就像foreach循环中的局部变量($item将不再存在未设置后的循环,但数组条目不受影响)。您可以将 foreach 与这样的键一起使用:


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

    unset($item->prestation_ids); //will work deleting item property

    unset($prestation['conciergeries'][$key]); //use key instead to unset array entry

}


查看完整回答
反对 回复 2022-07-22
  • 3 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信