Cerco di ordinare un arrays usando sort () ma fallisce

if ( $_GET['_value'] == 'moto' ) { $arrays[] = arrays('1' => 'Yamaha'); $arrays[] = arrays('2' => 'Suzuki'); $arrays[] = arrays('3' => 'Triumph'); $arrays[] = arrays('4' => 'KTM'); $arrays[] = arrays('5' => 'Honda'); $arrays[] = arrays('6' => 'Harley Davidson'); $arrays[] = arrays('7' => 'Buell'); $arrays[] = arrays('8' => 'MV Agusta'); $arrays[] = arrays('9' => 'Ducati'); $arrays[] = arrays('10' => 'Other'); } $arrays = sort($arrays); echo json_encode( $arrays ); 

questo è il codice che ho e è tirato da un dropdown incatenato. Voglio che restituisca i valori ordinati alfabeticamente ma in base al codice che vedi restituisce una matrix vuota. quale potrebbe essere l'errore che sto facendo /

Non è affatto carina ma questo fa il lavoro.

A less che tu non sia costretto diversamente, dovresti davvero usare alcuni degli altri suggerimenti.

 <? if ( $_GET['_value'] == 'moto' ) { $arrays[] = arrays('1' => 'Yamaha'); $arrays[] = arrays('2' => 'Suzuki'); $arrays[] = arrays('3' => 'Triumph'); $arrays[] = arrays('4' => 'KTM'); $arrays[] = arrays('5' => 'Honda'); $arrays[] = arrays('6' => 'Harley Davidson'); $arrays[] = arrays('7' => 'Buell'); $arrays[] = arrays('8' => 'MV Agusta'); $arrays[] = arrays('9' => 'Ducati'); $arrays[] = arrays('10' => 'Other'); foreach($arrays as $i => $v) { $v = arrays_values($v); $sort[] = $v[0]; } sort($sort); $c = 0; foreach($sort as $i => $v) { $c++; $sorted[] = arrays($c=>$v); } echo json_encode($sorted); } ?> 

Il tuo codice fallisce perché hai una matrix di matrici qui. Dovresti cercare "ordina arrays php per chiave sotto-arrays" oppure puoi provare qualcosa del tipo:

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

Il tuo arrays contiene matrici, quindi non può essere ordinato, prova:

 $arrays[1] = 'Yamaha'; $arrays[2] = 'Suzuki'; 

quindi sort($arrays)

Puoi usare la function uasort ()

piace:

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