2
 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 );

それは私が持っているコードであり、チェーンされたドロップダウンによって引き出されます。アルファベット順に並べ替えられた値を返したいのですが、コードに基づいて、空の配列が返されます。私が犯している間違いは何ですか /

4

4 に答える 4

4

ここに配列の配列があるため、コードは失敗します。「サブ配列キーでphp配列をソートする」を検索するか、次のようなものを試すことができます。

$array[1] = 'Yamaha';
$array[2] = 'Suzuki'; 
// ...
sort($array);
echo json_encode($array);
于 2013-02-05T12:21:18.523 に答える
3

配列には配列が含まれているため、ソートできません。試してください:

$array[1] = 'Yamaha';       

$array[2] = 'Suzuki';     

それからsort($array)

于 2013-02-05T12:23:33.047 に答える
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')
于 2013-02-05T12:26:23.010 に答える
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);
}
?>
于 2013-02-05T12:36:23.363 に答える