如何在php中按字母顺序对关联数组进行排序?

时间:2013-01-06 17:21:26

标签: php sql sorting associative-array alphabetical

我从数据库中获取数组值。它只是用户的名字。 我打印它们就像它们被检索一样,我想按字母顺序打印它们的名字(升序)。我怎么能这样做?

foreach($common_follows as $row) // $common_follows contains the IDs of users
            {

        $names=$obj2->get_user_name($row); //this function gets the name from user ID

                    while   ($rows = mysql_fetch_assoc($names)) // For getting the name of the person being followed
                    {
                sort($rows['name']); //Not seems to sort
                        echo '<img src="https://graph.facebook.com/'.$rows['user_id'].'/picture?type=normal" width="65" height="20" id="fbthumb">';
                        echo $rows['name']."<br>";
                      $count_common++;
                    }
            }

该sort函数似乎不起作用,因为在每次循环迭代时都会返回一个名称。

3 个答案:

答案 0 :(得分:2)

您可以使用ksort按键对PHP数组进行排序。如果要按值排序,请使用asort

答案 1 :(得分:1)

如果你想将排序移动到MySQL,你可以这样做:

SELECT *
FROM users
ORDER BY name ASC

这只是您需要匹配表/列名称的示例。

使用您的示例代码,您可以将$common_follows转换为逗号分隔的字符串,即1,2,3...,并将其传递给查询,而不是循环并进行多个MySQL查询。这看起来如下:

SELECT *
FROM users
WHERE id IN (1,2,3) // <-- comma separated string
ORDER BY name ASC

答案 2 :(得分:0)

<?php

 $fruits = array("lemon", "orange", "banana", "apple");
  sort($fruits);
 foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}

  ?>