function mySort($a, $b) {
if (strtolower($a->n) == strtolower($b->n)) return 0;
return (strtolower($a->n) < strtolower($b->n)) ? -1 : 1;
}
这适用于像这样的一些 json 数据
$txt = '[{"n":"1"},{"n":"2"},{"n":"3"},{"n":"4"},{"n":"5"},{"n":"6"},{"n":"7"},{"n":"8"},{"n":"9"},{"n":"10"},{"n":"11"}]
$j = json_decode($txt);
usort($j, 'mySort');
foreach ($j as $k=>$v) {
echo $v->n.'<br />';//1 2 3 4 5 6 7 8 9 10 11
}
但是当一些数据是这样的:
$txt = '[{"n":"a 1"},{"n":"a 2"},{"n":"a 3"},{"n":"a 4"},{"n":"a 5"},{"n":"a 6"},{"n":"a 7"},{"n":"a 8"},{"n":"a 9"},{"n":"a 10"},{"n":"a 11"}]';
$j = json_decode($txt);
usort($j, 'mySort');
foreach ($j as $k=>$v) {
echo $v->n.'<br />';//a 1 a 10 a 11 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9
}
我需要一种
a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11
谢谢。