我的數組是這樣的:排序數組(多維數組)
Array
(
[0] => Array
(
[id] => 613
[kleur] => royalblauw/wit
[maat] => maat XL
[voorraad] => 100
[sort] => 0
[prijs] => 4.1320
)
[1] => Array
(
[id] => 614
[kleur] => royalblauw/wit
[maat] => maat XXL
[voorraad] => 100
[sort] => 1
[prijs] => 4.1320
)
[2] => Array
(
[id] => 620
[kleur] => zwart/wit
[maat] => maat XL
[voorraad] => 100
[sort] => 2
[prijs] => 4.1320
)
etc.etc.
我想是到「MAAT」(大小)數組排序。正如你所看到的,有多個條目具有相同的'maat'。
我一直在嘗試幾個小時,但仍然不是一個好的結果。當然我也一直在看Stackoverflow。這是我迄今爲止所擁有的。
功能:
function cmp($a, $b)
{
$sizes = array(
"116" => 0,
"128" => 1,
"140" => 2,
"152" => 3,
"164" => 4,
"XXS" => 5,
"XS" => 6,
"S" => 7,
"M" => 8,
"L" => 9,
"XL" => 10,
"XXL" => 11,
"XXXL" => 12,
"XXXXL" => 13,
"XXXXXL" => 14
);
$asize = $sizes[$a];
$bsize = $sizes[$b];
if ($asize == $bsize) {
return 0;
}
return ($asize > $bsize) ? 1 : -1;
}
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
uasort($sorter, "cmp");
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
並調用函數aasort:
aasort($maatkleur_array,"maat");
請你能幫助我。我希望這是我想要達到的目標。
你有沒有注意到一些錯誤信息?因爲你的數組像'[「maat」] =「maat XL」,但你的'$ sizes'就像'[「XL」] = 10',而不是'[「maat XL」] = 10'。 – Passerby 2013-05-06 10:39:45
嗯我會改變它,我沒有得到一個錯誤順便說一句,但排序不工作,它應該是 – Gijsve 2013-05-06 11:16:45