我有一个多维数组可以在PHP中使用和排序。 我试图通过 product_code 键对其进行排序。需要安排阵列
这是我拥有的数组
Array
(
[0] => Array
(
[product_name] => Stellar
[product_code] => C5311.01
)
[1] => Array
(
[product_name] => Luigi
[product_code] => C5310.02
)
[2] => Array
(
[product_name] => Apple
[product_code] => C5310.01
)
[3] => Array
(
[product_name] => Quietly
[product_code] => C5311.02
)
)
这需要按以下方式排序:
Array
(
[0] => Array
(
[product_name] => Apple
[product_code] => C5310.01
)
[1] => Array
(
[product_name] => Stellar
[product_code] => C5311.01
)
[2] => Array
(
[product_name] => Luigi
[product_code] => C5310.02
)
[3] => Array
(
[product_name] => Quietly
[product_code] => C5311.02
)
)
我认为首先用 product_code 键对数组进行排序,然后使用usort对子数据进行排序会产生有利的结果,但我错了。也许我太努力了..
任何帮助都将受到高度赞赏。提前谢谢。
答案 0 :(得分:0)
我认为usort
实际上就是你所需要的,但我认为你使用它的方式是错误的。如果你需要排序
- 首先按照product_code的最后两个字符的升序排列
- 然后按'。'前面的字符的升序排列。 product_code
只需编写一个执行此操作的函数并将其传递给usort
:
function cmp($a,$b){
$lastTwoDigitsCmp=strcmp(substr($a["product_code"], -2), substr($b["product_code"], -2));
if($lastTwoDigitsCmp==0)
return strcmp($a["product_code"],$b["product_code"]);
else
return $lastTwoDigitsCmp;
}
这应该可以胜任。