使用子键值对 PHP 数组进行排序

2021-12-21 00:00:00 multidimensional-array php

我有一个看起来像这样的数组:

<前>大批([埃里克] => 数组([计数] => 10[变化] => 1)[Morten] => 数组([计数] => 8[变化] => 1))

现在,数组中的键是我们帮助台系统中技术人员的姓名.我正在尝试根据 [count] 加上 [changes] 的数量对其进行排序,然后显示它们.我尝试使用 usort,但随后数组键被索引号替换.我该如何排序并保留数组键?

解决方案

你应该使用 uasort 来解决这个问题.

<块引用>

bool uasort ( array &$array ,回调$cmp_function )

这个函数对一个数组进行排序,使得数组索引保持它们的与数组元素的相关性它们与,使用用户定义的比较函数.这主要用于排序时关联数组,其中实际元素顺序很重要.

I have an array that looks something like this:

Array
(
    [Erik] => Array
    ( 
        [count] => 10
        [changes] => 1
    )
    [Morten] => Array
    (
        [count] => 8
        [changes] => 1
    )
)

Now, the keys in the array are names of technicians in our Helpdesk-system. I'm trying to sort this based on number of [count] plus [changes] and then show them. I've tried to use usort, but then the array keys are replaced by index numbers. How can I sort this and keep the array keys?

解决方案

You should use uasort for this.

bool uasort ( array &$array , callback $cmp_function )

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with, using a user-defined comparison function. This is used mainly when sorting associative arrays where the actual element order is significant.

相关文章