按字母顺序对数组进行排序

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()函数?


所以你正在尝试对一个字符串数组的数组进行排序? - Arjan
5个回答

4
尝试这个:

试一下:

$array  = your array

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

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

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
)

0

试试这样

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

试试这个链接


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

基于此文档的示例代码。

我应该将 usort($array, "cmp"); 存储在一个变量中吗?然后再打印它? - woninana
不,usort()会修改实际的数组。 - Arjan

-1

查看这里,了解各种PHP数组排序。但是对于您的特定问题,在将所有数组合并为一个后,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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接