Sort()返回一个真实值,而不是排序的数组[重复]

问题描述 投票:0回答:4
 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 );

是我拥有的代码,它被链式下拉列表所取。 我希望它以字母顺序排列的值返回,但根据您看到的代码返回空数数组。我犯的错误是什么?

php arrays sorting
4个回答
4
投票
您的代码失败,因为您在这里有一系列数组。 您应该搜索“按子阵列密钥进行排序PHP数组” 或者您可以尝试以下操作:

$array[1] = 'Yamaha'; $array[2] = 'Suzuki'; // ... sort($array); echo json_encode($array);
    

3
投票
您的数组包含数组,因此无法排序,请尝试:

$array[1] = 'Yamaha'; $array[2] = 'Suzuki';
然后
    

您可以使用uasort()函数
像:


2
投票

一点都不漂亮,但这可以完成工作。 除非您受到限制,否则您应该真正使用其他一些建议。

function cmp($a, $b) { $a = reset($a); $b = reset($b); if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } uasort($array, 'cmp')
    

1
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.