PHP:对多维数组进行排序,但保留其子结构



我有一个具有以下结构的多维数组:

$arr[0][0] = 1.24;
$arr[0][1] = 5.21;
$arr[0][2] = 2.72;
$arr[0][3] = 1.89;
$arr[0][4] = 4.62;
$arr[1][0] = 3.45;
$arr[1][1] = 5.61;
$arr[1][2] = 2.62;
$arr[1][3] = 1.12;
$arr[1][4] = 1.35;

这个数组应该在保持$arr[0]和$arr[1]的子顺序的同时进行排序,所以结果看起来像这样:

$arr[0][0] = 1.24;
$arr[1][0] = 3.45;
$arr[0][1] = 5.21;
$arr[0][2] = 2.72;
$arr[0][3] = 1.89;
$arr[0][4] = 4.62;
$arr[1][2] = 2.62;
$arr[1][3] = 1.12;
$arr[1][4] = 1.35;
$arr[1][1] = 5.61;

我不在乎结果以何种形式保存,但我需要键和值。希望你能理解并帮助我。

循环外部数组并对内部数组进行排序怎么样?

foreach ($arr as $id => $data) {
 sort($data);
 $arr[$id] = $data;
}
                $arr[0][0] = 1.24;
                $arr[0][1] = 5.21;
                $arr[0][2] = 2.72;
                $arr[0][3] = 1.89;
                $arr[0][4] = 4.62;
                $arr[1][0] = 3.45;
                $arr[1][1] = 5.61;
                $arr[1][2] = 2.62;
                $arr[1][3] = 1.12;
                $arr[1][4] = 1.35;
                $size = count($arr);
                $outArr= array();
                foreach($arr[0] as $key =>$value)
                {
                    $resArr = array();
                    for($i = 0 ; $i< $size ; $i++)
                    {
                        $resArr[] = $arr[$i][$key] ;
                    }
                    sort($resArr);
                    $outArr[$key] = $resArr;
                }
                echo "<pre>";
                print_r($outArr);

检查这是否是一个更接近的解决方案。

相关内容

  • 没有找到相关文章

最新更新