Php 无法对多维关联数组进行排序

Php 无法对多维关联数组进行排序,php,arrays,Php,Arrays,希望我不会把你弄糊涂,但我来了 我有一个多维数组,每个键代表月份。(dataByMonth) 所以在下面的代码中,我每个月都会循环 在第二个foreach中,我检查每个元素的类型(在本例中为ward) 如果award在字符串末尾包含一个\u perc,则它也将被忽略 这就给我留下了一个如图中所示的数组,其中我有病房以及当月的就诊量 这就是问题所在。然后,我尝试按值对数组排序DESC如下arsort($resArr,sort\u NUMERIC)屈膝礼和 但这无法对数组进行排序 我试过了 $res

希望我不会把你弄糊涂,但我来了

我有一个多维数组,每个键代表月份。(
dataByMonth

所以在下面的代码中,我每个月都会循环

在第二个
foreach
中,我检查每个元素的类型(在本例中为
ward

如果a
ward
在字符串末尾包含一个
\u perc
,则它也将被忽略

这就给我留下了一个如图中所示的数组,其中我有病房以及当月的就诊量

这就是问题所在。然后,我尝试按值对数组排序
DESC
如下
arsort($resArr,sort\u NUMERIC)屈膝礼和

但这无法对数组进行排序

我试过了

$resArr = array();
$returnArray = array();
$length = strlen($type);
foreach ($dataByMonth as $key =>$data) {
    foreach($data as $k => $v) {
        if (substr($k, 0, $length) == $type && substr($k, -5, 5) != "_perc") {
            $name = str_replace($type, "", $k);
            $elm_name = str_replace("_", " ", $name);
            $resArr[$elm_name] = $v;
        }
    }

    arsort($resArr,SORT_NUMERIC);

    $returnArray[$key] = $resArr;
}
然后,每个月都被添加到年度数组中,然后在报告中使用该数组

我有一个数组

使用该方法对我有效:

rsort($resArr);

Fiddle:

您可能希望共享输入和预期输出。您不需要在第二个foreach之前将
$resArr
重置为空数组吗?@jh1711很好,但它最终仍然不会对连接的数组进行排序。在演示中,所有键都已删除。@FelippeDuarte-正如您在原始问题下的注释中所述,我们不知道预期的产出应该是多少。我假设询问者希望对值进行排序,我提供了一个答案。你有没有一个神奇的小球,可以让你看到询问者想要什么,如果是这样的话,我们也许应该谈谈。谢谢David,但正如我在上面所说的那样,“然后我尝试按值对数组DESC排序”。@morne-对,这就是我提供的解决方案。如果您给出一个示例,说明当数组都被称为“已完成”时,您希望数组是什么样子的,那么这可能会更有益。