PHP - 删除关联数组元素并在一个操作中将其分配给变量?

时间:2016-05-25 13:08:45

标签: php

我试图找出是否有一种删除数组元素的方法,同时将该值存储在变量中。

$array = [
    'foo' => 'a',
    'bar' => 'b'
];

// Perform the following with one action?
$var = $array['foo'];
unset($array['foo']);

编辑:我的意思是如果没有自定义功能就可以完成。

2 个答案:

答案 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_pop

array_shift

可以在此处找到阵列函数的完整参考。也许你找到的东西以你需要的方式为你服务: Array functions reference