"News", "b"=>"Articles",-6ren">
gpt4 book ai didi

php - 关联数组 Push Shift Items

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:31 25 4
gpt4 key购买 nike

我在 PHP 中有一个关联数组。

$myarray = array(
"a"=>"News",
"b"=>"Articles",
"c"=>"images"
);

我想在“a”键后插入一些值。这样数组的结构就变成了

$myarray = array(
"a"=>"News",
"j"=>"Latest News",
"k"=>"Sports News",
"l"=>"Entertainment",
"b"=>"Articles",
"c"=>"images"
);

我怎样才能获得这个功能。

最佳答案

这个函数是array_splice ,但您将不得不手动完成一些工作,因为它不保留 key 。让我们让它这样做:

function search_and_insert($input, $afterKey, $newItems) {
$keys = array_keys($input);
$insertPosition = array_search($afterKey, $keys);
if ($insertPosition === false) {
return false;
}
++$insertPosition;

$newKeys = array_keys($newItems);
array_splice($keys, $insertPosition, 0, $newKeys);
array_splice($input, $insertPosition, 0, $newItems);
return array_combine($keys, $input);
}

这里的想法是分别处理键和值,为每个数组拼接一次,然后使用 array_combine得到最终结果。另一个好主意是使用相同的技术编写一个可重用的 array_splice_assoc 函数并使用它,而不是让一个函数只做这个特定的工作。

用法:

$myarray = array("a"=>"News", "b"=>"Articles", "c"=>"images");
$newItems = array("j"=>"Latest News", "k"=>"Sports News", "l"=>"Entertainment");
$insertAfter = "a";

print_r(search_and_insert($myarray, "a", $newItems));

See it in action .

关于php - 关联数组 Push Shift Items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101608/

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