这里的交易是,我有一个有17个元素的数组。我想得到我在某一时间内需要的元素,并将它们从数组中永久删除。
下面是代码:
$name = $post['name'];
$email = $post['email'];
$address = $post['address'];
$telephone = $post['telephone'];
$country = $post['country'];
unset($post['name']);
unset($post['email']);
unset($post['address']);
unset($post['telephone']);
unset($post['country']);
是的,代码是丑陋的,没有必要抨击。我如何使它看起来更好?
6条答案
按热度按时间hi3rlvi21#
使用
array_diff_key
删除如果您想提供一个要保留的键数组,可以使用
array_intersect_key
。bvuwiixz2#
看起来
extract()
函数是一个更好的工具来完成你要做的事情(假设它从数组中提取所有的键/值,并将它们赋给与局部作用域中的键同名的变量),在提取了内容之后,你可以取消设置整个$post
,假设它不包含任何你想要的东西。然而,要真正回答您的问题,您可以创建一个要删除的键的数组并循环,显式地取消设置它们...
...或者您可以将变量指向已删除键的新数组...
...或将所有数组成员传递给
unset()
...pes8fvy93#
还有另一种方法比上面的例子更好。http://php.net/manual/en/function.unset.php
不用遍历整个数组并取消设置所有键,只需取消设置一次即可,如下所示:
阵列示例:
对于整个阵列:
对于唯一键:
对于一个数组中的多个键:
我希望这对你的发展有帮助。
pbwdgjma4#
我知道这个问题很老了,但我认为最佳的方法可能是这样做:
现在,你可以从任何地方使用$name,$email,...;)
注意:extract()是不安全的,所以它完全没有问题!
qxgroojn5#
7gyucuyw6#
在php中unset函数可以有多个参数
以下是文档中的描述