我有一个包含2列以上的多维关联数组。
我正在尝试创建一个函数,该函数使用两个特定列的值对数组进行排序。例如,如果数组中位置4的value_column_3(' hangs_from')取决于数组中位置0的value_column_1(' old_id'),我必须将数组的位置4移动到右边在位置0之后。
它是一种冒泡排序算法。
如何从这个多维关联数组中访问和具体位置,以便进行比较?
答案 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;
}