1
我有一个包含多于2列的多维关联数组。多维关联数组的特定顺序
我正在尝试创建一个函数,该函数使用两个特定列的值对数组进行排序。例如,如果数组中的位置4的value_column_3('hangs_from')取决于数组中位置0的value_column_1('old_id'),则必须将位置4的位置4移动到位置0之后。
这是排序气泡排序算法。
如何从此多维关联数组访问和指定位置,以便我可以进行比较?
我有一个包含多于2列的多维关联数组。多维关联数组的特定顺序
我正在尝试创建一个函数,该函数使用两个特定列的值对数组进行排序。例如,如果数组中的位置4的value_column_3('hangs_from')取决于数组中位置0的value_column_1('old_id'),则必须将位置4的位置4移动到位置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;
}
检查uasort:https://www.w3schools.com/php/func_array_uasort.asp –
但你如何比较具体地,例如第五和第六的位置?我的意思是,例如尝试使用冒泡排序:对于(i = 2; i数组(位置j)); ...东西 } } –
其中密钥1038阵列在最后所需的数组? –