Php 按不同的值有条件地对多维数组排序
我有下一个多维OANL数组(它相当长,但我在这里复制了第一个元素): 我需要先按“cpt”值排序,然后按“税”值排序,最后按“年”排序 问题是“cpt”和“tax”的排序顺序应该是自定义顺序,而不是字母顺序 好消息是:Php 按不同的值有条件地对多维数组排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我有下一个多维OANL数组(它相当长,但我在这里复制了第一个元素): 我需要先按“cpt”值排序,然后按“税”值排序,最后按“年”排序 问题是“cpt”和“tax”的排序顺序应该是自定义顺序,而不是字母顺序 好消息是: 数组总是按“cpt”完美排序生成(如您所能 见)。所以我不在乎分类 我只需要应用这些排序更改(首先在“tax”中,然后 “年”(下一年)用于特定的“cpt”,即“审查” 这是我的代码,但它无效,因为它还更改了“cpt”顺序 $sort_tax = array("Sample"
- 数组总是按“cpt”完美排序生成(如您所能 见)。所以我不在乎分类
- 我只需要应用这些排序更改(首先在“tax”中,然后 “年”(下一年)用于特定的“cpt”,即“审查”
$sort_tax = array("Sample","Figure","Picture based");
usort($the_array, function ($a, $b) use ($sort_tax) {
$pos_a = array_search($a['tax'], $sort_tax);
$pos_b = array_search($b['tax'], $sort_tax);
$result = $pos_a - $pos_b;
if ($result == 0) {
$difference = $a['year'] - $b['year'];
if ($difference >= 0) {
$value = 0;
} else {
$value = 1;
}
return $value;
} else {
return $pos_a - $pos_b;
}
});
有什么想法吗?
非常感谢
$array = array();
foreach($array_name as $arr){
$array['cpt'] = $arr['cpt'];
$array['tax'] = $arr['tax'];
$array['year'] = $arr['year'];
}
array_multisort($array['tax'], SORT_DESC, $array['year'], SORT_ASC,$Your_array_name);
您可以从中检查数组\u多重排序
您可以从中检查数组_multisort,正如我在问题上所写的:问题是“cpt”和“tax”的排序顺序应该是自定义顺序,而不是字母顺序。正如我在问题上所写的:问题是“cpt”和“tax”的排序顺序应该是自定义顺序,而不是字母顺序
$array = array();
foreach($array_name as $arr){
$array['cpt'] = $arr['cpt'];
$array['tax'] = $arr['tax'];
$array['year'] = $arr['year'];
}
array_multisort($array['tax'], SORT_DESC, $array['year'], SORT_ASC,$Your_array_name);