我试图找出是否有一种删除数组元素的方法,同时将该值存储在变量中。
即
$array = [
'foo' => 'a',
'bar' => 'b'
];
// Perform the following with one action?
$var = $array['foo'];
unset($array['foo']);
编辑:我的意思是如果没有自定义功能就可以完成。
答案 0 :(得分:4)
但它有慢而丑。
$var = array_splice($array, array_search('foo', array_keys($array)), 1)['foo'];
我坚持使用2线。
答案 1 :(得分:0)
可以在某些情况下完成。
有两个功能可以做你想要的任何事情。
array_pop($stack);
array_shift($stack);
但是如果使用关联数组,array_pop只获取并删除最后一个元素而array_push是数组的第一个元素,这可能导致代码的意外行为。
但是,如果您可以重构数组以适应这些函数而不增加复杂性(这会使整个事情变得毫无意义),那么就可以完成它。
这两个功能的链接是:
可以在此处找到阵列函数的完整参考。也许你找到的东西以你需要的方式为你服务: Array functions reference