gpt4 book ai didi

php - 通过排序将数组元素移动到数组末尾

转载 作者:行者123 更新时间:2023-12-03 22:58:35 25 4
gpt4 key购买 nike

如果我有这样一个数组(它可以是数字的任意组合):

$arr = array(1, 2, 4, 2, 3, 5, 4, 2, 1);

我想将所有等于 4 的元素移动到数组的末尾,同时保留其他元素的顺序,因此理想情况下我的结果数组将是:

1, 2, 2, 3, 5, 2, 1, 4, 4

我想我可以通过使用排序函数来实现:

uasort($arr, function($a, $b){
return $b == 4 ? -1 : 1;
});

这会将“4”个元素移到末尾,但会破坏其他元素的顺序,这是我使用上述代码得出的结果:

2, 3, 1, 2, 5, 2, 1, 4, 4

我的排序处理函数应该是什么样子的?/有没有比对数组排序更好的方法来实现这一点?

注意;我想保留我的数组键(因此 uasort)

eval.in

最佳答案

这应该适合你:

<?php

$arr = array(1, 2, 4, 2, 3, 5, 4, 2, 1);

foreach($arr as $k => $v) {

if($v == 4) {
unset($arr[$k]);
$arr[$k] = $v;
}

}

print_r($arr);

?>

输出:

//before 
Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 2 [4] => 3 [5] => 5 [6] => 4 [7] => 2 [8] => 1 )
//after ^ key ^ value ^ key ^ value
Array ( [0] => 1 [1] => 2 [3] => 2 [4] => 3 [5] => 5 [7] => 2 [8] => 1 [2] => 4 [6] => 4 )
//^ ^ ^ ^

关于php - 通过排序将数组元素移动到数组末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835311/

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