2013-05-22 4 views
3
Array 
(
    [0] => Jane Smith 
) 

Array 
(
    [0] => John Paul 
) 

Array 
(
    [0] => Jennifer 
) 

Array 
(
    [0] => Paolo 
) 

Array 
(
    [0] => Delilah 
) 


foreach($name as $a){ 
    print_r($a); 
} 

Можно ли в алфавитном порядке упорядочить этот массив? Как я могу использовать sort() здесь?В алфавитном порядке сортировать массив

+0

Итак, вы пытаетесь отсортировать массив массивов строк? – Arjan

ответ

4

Попробуйте это:

$array = your array 

$result = call_user_func_array('array_merge', $array); 
sort($result); 

echo "<pre>"; 
print_r($result); 
0

Попробуйте как

$array = your array; 
asort($array); 

Попробуйте LINK

+0

Это работает для вас .. ?? – Gautam3164

2

Попробуйте это:

<?php 

$ar1 = array("Jane Smith", "John Paul ", "Jennifer", "Paolo","Delilah"); 
function alphasort($a, $b) { 
    if ($a['name'] == $b['name']) { 
     return 0; 
    } 
    return ($a['name'] < $b['name']) ? -1 : 1; 
} 

usort ($ar1,'alphasort'); 
echo '<pre>'; 
print_r($ar1); 

?> 

Результат:

Array 
(
    [0] => Delilah 
    [1] => Jane Smith 
    [2] => Jennifer 
    [3] => John Paul 
    [4] => Paolo 
) 
-1

Посмотрите на here для всех видов сортировки массивов PHP. Но для вашего конкретного вопроса после выполнения array_merge() на все, что вы массивам иметь один ONW, либо sort() или asort() должны работать так же, как это:

$all=array(); 
foreach($name as $a){ 
    $all=array_merge($all, $a); 
} 
sort($all); 
print_r($all); 

ИЛИ

$all=array(); 
foreach($name as $a){ 
    $all=array_merge($all, $a); 
} 
asort($a); 
print_r($a); 
0

Так это выглядит, как вы пытаясь отсортировать массив массивов строк вместо массива строк, вы не можете использовать sort().

$array = array(array('Jane Smith'), array('John Paul'), array('Jennifer')); 

function cmp($a, $b) 
{ 
    $a = $a[0]; 
    $b = $b[0]; 
    if ($a == $b) { 
     return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

usort($array, "cmp"); 

foreach($name as $a){ 
    print_r($a); 
} 

Пример кода на основе this documentation.

+0

Должен ли я хранить 'usort ($ array," cmp ");' в переменной? затем распечатать? – woninana

+0

Нет, 'usort()' изменяет фактический массив. – Arjan

Смежные вопросы