我正在尋找一些建議,我怎麼能按'variant_name'鍵排序這種數組。PHP按值排序巨型數組
因爲數組真的很大,我將它縮小到了查找結果狀態。
...
$filter[2413][1][81][sub_id] = 1;
$filter[2413][1][81][variant_id] = 81;
$filter[2413][1][81][variant_name] = 'Banana';
$filter[2413][2][87][sub_id] = 2;
$filter[2413][2][87][variant_id] = 87;
$filter[2413][2][87][variant_name] = 'Apple';
$filter[2413][3][32][sub_id] = 3;
$filter[2413][3][32][variant_id] = 32;
$filter[2413][3][32][variant_name] = 'Carrot';
...
鍵$filter[x][x][x]
沒有先後順序。
我已經試過我以前使用的排序功能,但它並沒有與這種陣列的工作:
function array_sort_by_column(&$arr, $col, $dir = SORT_ASC) {
$sort_col = array();
foreach ($arr as $key=> $row) {
$sort_col[$key] = $row[$col];
}
array_multisort($sort_col, $dir, $arr);
}
array_sort_by_column($filter[][][], 'variant_name');
我的目標是通過分揀「VARIANT_NAME」到「蘋果」,「香蕉」修改陣列,'胡蘿蔔'因此保持陣列結構。
usort()是要走的路。 – goat