gpt4 book ai didi

php - 反转 PHP 数组 ksort

转载 作者:搜寻专家 更新时间:2023-10-31 21:11:09 24 4
gpt4 key购买 nike

我有一个这样的数组:

Array(
[31] => 1
[30] => 2
[29] => 3
[28] => 4
)

然后我使用 ksort($array) 将其排序为 28、29、30 和 31,但问题在于数字 1-4 与值一致,因此会反转。我想让 28 变成 1,29 变成 2 等等。

有没有一种方法可以不创建 foreach 循环并重建一个新数组来进行此切换?

最佳答案

你可以翻转数组,排序,然后翻转回来:

$array = array(31 =>1, 30 => 2, 29 => 3, 28 => 4);

$result = array_flip($array);
sort($result);
$result = array_flip($result);

这会产生一个按键排序的数组,值是从 0 开始的整数:

Array (
[28] => 0
[29] => 1
[30] => 2
[31] => 3
)

维持现有值(value)

如果您想保留现有值,请使用 array_combine 函数将已排序的键与旧值合并:

$result = array_flip($array);
sort($result);
$result = array_combine($result, $array);

结果数组是:

Array
(
[28] => 1
[29] => 2
[30] => 3
[31] => 4
)

关于php - 反转 PHP 数组 ksort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189726/

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