if ( $_GET['_value'] == 'moto' )
{
$array[] = array('1' => 'Yamaha');
$array[] = array('2' => 'Suzuki');
$array[] = array('3' => 'Triumph');
$array[] = array('4' => 'KTM');
$array[] = array('5' => 'Honda');
$array[] = array('6' => 'Harley Davidson');
$array[] = array('7' => 'Buell');
$array[] = array('8' => 'MV Agusta');
$array[] = array('9' => 'Ducati');
$array[] = array('10' => 'Other');
}
$array = sort($array);
echo json_encode( $array );
这是我拥有的代码,它由链式下拉列表拉动。 我希望它返回按字母顺序排序的值,但根据您看到的代码返回一个空数组。可能是我犯的错误/
答案 0 :(得分:4)
您的代码失败,因为您在此处拥有一组数组。 你应该搜索“按子数组键排序php数组” 或者你可以尝试类似的东西:
$array[1] = 'Yamaha';
$array[2] = 'Suzuki';
// ...
sort($array);
echo json_encode($array);
答案 1 :(得分:3)
您的数组包含数组,因此无法排序,请尝试:
$array[1] = 'Yamaha';
$array[2] = 'Suzuki';
然后sort($array)
答案 2 :(得分:2)
您可以使用uasort()函数
像:
function cmp($a, $b) {
$a = reset($a);
$b = reset($b);
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
uasort($array, 'cmp')
答案 3 :(得分:1)
它一点也不漂亮,但是这样做了。
除非你受到限制,否则你应该真正使用其他一些建议。
<?
if ( $_GET['_value'] == 'moto' ) {
$array[] = array('1' => 'Yamaha');
$array[] = array('2' => 'Suzuki');
$array[] = array('3' => 'Triumph');
$array[] = array('4' => 'KTM');
$array[] = array('5' => 'Honda');
$array[] = array('6' => 'Harley Davidson');
$array[] = array('7' => 'Buell');
$array[] = array('8' => 'MV Agusta');
$array[] = array('9' => 'Ducati');
$array[] = array('10' => 'Other');
foreach($array as $i => $v)
{
$v = array_values($v);
$sort[] = $v[0];
}
sort($sort);
$c = 0;
foreach($sort as $i => $v)
{
$c++;
$sorted[] = array($c=>$v);
}
echo json_encode($sorted);
}
?>