我正在尝试做一些事情:我有一个这样布置的数组:
Array ( [0] => Nocciole con guscio 1000gr;;1;€5,50;0;0;No;0;
[1] => Abbonamento Box Piccola - 4 Box;1;1;€60,00;0;0;Sì;4;
[2] => Box Media - Mista;2;1;€27,00;0;0;No;0;
[3] => La Tua Box - Piccola;1;1;€25,00;Mele, Pere;Finocchi, Radicchio Tondo, Cetrioli, Peperoni Rossi;No;0;
[4] => Abbonamento Box Piccola - 4 Box;1;1;€60,00;0;0;Sì;4;
[5] => Abbonamento Box Grande - 8 Box;3;1;€200,00;0;0;Sì;8;
[6] => Box Piccola - Mista;1;1;€20,00;0;0;No;0;
[7] => Abbonamento Box Media - 4 Box;2;1;€80,00;0;0;Sì;4; )
如您所见,所有值都经过格式化,以便我可以轻松地将它们分解为单个数组。每个人都看起来像这样:
Subarray ( [0] => Abbonamento Box Piccola - 4 Box
[1] => 1
[2] => 1
[3] => €60,00
[4] => 0
[5] => 0
[6] => Sì
[7] => 4
[8] => )
我需要做的是按Subarray [1]的降序对第一个数组进行排序(请注意,索引1包含一个字符串),以便Subarray保持其index => value结构的原始状态。有任何线索吗?
答案 0 :(得分:0)
假设您的数组名称为$arr
,您可以尝试如下操作:
usort($arr, function($a, $b){
$a = (int) explode(';', $a)[1];
$b = (int) explode(';', $b)[1];
if ($a === $b) {
return 0;
}
return ($a < $b) ? 1 : -1;
});
关于3v4l的示例
来自PHP手册: