我想基于label
键按字母顺序对多维数组进行排序,并保留原始的category
键。我尝试过使用uasort
,但似乎没有办法:
uasort($array, function($a, $b) {
return $a[0]['label'] <=> $b[0]['label'];
});
有人可以帮帮我吗?
我有以下数组:
$array = Array
(
[Bier] => Array
(
[0] => Array
(
[value] => KIT 1
[label] => Amstel Tray 12 x 50cl
[picture] => amstel-tray-24-0_5.jpg
)
[1] => Array
(
[value] => 2
[label] => Heineken Krat 24 x 30cl
[picture] => heineken-krat-24-flesjes.jpg
)
[2] => Array
(
[value] => 4
[label] => Amstel Tray 24 x 50cl
[picture] => amstel-tray-24-0_5.jpg
)
)
)
[Second Category] => [..]
[Third Category] => [..]
[..] => [..]
);
提前致谢!
答案 0 :(得分:0)
问题是你正在用内部数组上的标签值对外部数组进行排序,而实际上你想要的是对每个数组中的项进行排序。尝试循环遍历数组并进行排序。
df.assign(x_cat = lambda v: v.x.apply(lambda x: 'Sucess' if x>=0 else None),
y_cat = lambda v: v.y.apply(lambda x: 'warning' if -10<=x<0 else None),
z_cat = lambda v: v.z.apply(lambda x: 'danger' if x<=-10 else None),)
请注意,我也循环遍历引用,如果不这样做,原始数组中的项目将不会被排序。