多维关联数组的特定顺序

时间:2017-06-16 05:31:52

标签: php arrays multidimensional-array associative-array

我有一个包含2列以上的多维关联数组。

我正在尝试创建一个函数,该函数使用两个特定列的值对数组进行排序。例如,如果数组中位置4的value_column_3(' hangs_from')取决于数组中位置0的value_column_1(' old_id'),我必须将数组的位置4移动到右边在位置0之后。

它是一种冒泡排序算法。

如何从这个多维关联数组中访问和具体位置,以便进行比较?

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效。

$sortedArray = [];
foreach($q1 as $key => $value){
    $tempData = [];
    foreach($q1 as $key2 => $value2){
        if($value2['hangs_from'] === $key){
            $tempData[$value2['old_id']] = $value2;
            unset($q1[$value2['old_id']]);
        }
    }
    uasort($tempData, function($a, $b){
        return ($a['old_id'] < $b['old_id']) ? -1 : 1;
    });
    $sortedArray[$key] = $value;
    unset($q1[$value['old_id']]);
    $sortedArray = $sortedArray + $tempData;
}