2015-03-23 3 views
-3
echo '<pre>'.print_r($listings,1).'</pre>'; 

ksort($listings, SORT_NUMERIC); 

echo '<pre>'.print_r($listings,1).'</pre>'; 

Выход:ksort не похоже на работу

Array 
(
    [quick-brown-fox] => Array 
     (
      [0] => Quick-brown-fox 
      [1] => quick-brown-fox 
      [4] => general_thumbs/quick-brown-fox.jpg 
      [2] => 320 
      [3] => 240 
     ) 

) 

Array 
(
    [quick-brown-fox] => Array 
     (
      [0] => Quick-brown-fox 
      [1] => quick-brown-fox 
      [4] => general_thumbs/quick-brown-fox.jpg 
      [2] => 320 
      [3] => 240 
     ) 

) 

Я попытался foreach, но это не повлияет на исходный массив, и for не будет работать, потому что в его ключе, а не как индекс. Что мне делать в этом случае?

+4

Ну, 'ksort()' делает сортировки ваш массив, который имеет только одну запись: 'быстро коричнево-fox' =>' Array (5) ' , Вам нужно сделать 'ksort ($ listings [0])'. – D4V1D

+0

Я пробовал 'foreach', но это не повлияет на исходный массив, а' for' не будет работать, потому что его ключ, а не индекс – 3zzy

+1

'ksort ($ lists ['quick-brown-fox'], SORT_NUMERIC); ' –

ответ

4

У вас есть вложенный массив в этом массиве $listings. Для того, чтобы отсортировать его, написать это:

foreach($listings as $k => $a){ 
    ksort($a, SORT_NUMERIC); 
    $listings[$k] = $a; 
} 
1
array_walk(
    $listings, 
    function(&$value) { 
     ksort($value, SORT_NUMERIC); 
    } 
); 
Смежные вопросы