gpt4 book ai didi

php - 从 PHP 中的关联数组中弹出键和值

转载 作者:IT王子 更新时间:2023-10-28 23:49:24 26 4
gpt4 key购买 nike

让 S 成为 PHP 中的关联数组,我需要从中检索并提取第一个元素,包括值和键。

我会用

value1=array_pop(S);

但它只给了我值(value)。

我可以用

K=array_keys(S);
key1=array_pop(K);
value1=array_pop(S);

但它很复杂,因为它需要有相同数据的两个副本。这是一个令人困惑的问题,因为数组本身就是数组数组中的一个元素。必须有一种更优雅的方法来在提取时读取一对键/值。

最佳答案

$value = reset($arr);
$key = key($arr);

(按顺序)

参见reset() PHP Manual ,key() PHP Manual .

unset($arr[$key]); # in case you want to remove it.

然而array_pop() PHP Manual正在处理最后一个元素:

$value = end($arr);
$key = key($arr);
unset($arr[$key]); # in case you want to remove it.

end() PHP Manual .

为了好玩:

list($value, $key) = array(end($arr), key($arr));

extract(array('value'=>end($arr), 'key'=>key($arr)));

end($arr);
list($key, $value) = each($arr);

或任何你喜欢的游戏风格;)

处理空数组

目前还缺少处理空数组的方法。所以需要检查是否有最后一个(第一个)元素,如果没有,将 $key 设置为 null (因为 null 可以不是数组键):

for($key=null;$key===null&&false!==$value=end($arr);)
unset($arr[$key=key($arr)]);

这将给出一个填充数组,如 $arr = array('first' => '1st', 'last' => '2nd.');:

string(4) "2nd." # value
string(4) "last" # key
array(1) { # leftover array
["first"]=>
string(3) "1st"
}

还有一个空数组:

bool(false) # value
NULL # key
array(0) { # leftover array
}

害怕使用 unset?

如果您不相信 unset() 具有您需要的性能(我认为这不是一个真正的问题,尽管我没有运行任何指标),您可以也使用原生的 array_pop() 实现(但我真的认为 unset() 作为一种语言结构可能会更快):

end($arr);
$key = key($arr);
$value = array_pop($arr);

关于php - 从 PHP 中的关联数组中弹出键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com