PHP:根据alphabate顺序在数组中单独的值

时间:2010-04-07 13:05:51

标签: php arrays

我想根据alphabate在数组中查找值,并希望根据alphabate顺序列出数组值。

我的数组是这样的:

  

阵列(       [0] =>排列           (               [0] =>阿迪达斯               [1] => AKG               [2] =>苹果               [3] => Barrats               [4] =>教规               [5] =>戴尔               [6] => Dixons的               [7] => HTC               [8] =>利物浦               [9] =>微软               [10] =>倍耐力轮胎               [11] =>           )

     

我希望根据alphabate创建一个值列表:

A           
________        
  Adidas       
  AKG 

是否有任何想法?

7 个答案:

答案 0 :(得分:1)

你在asort

之后
asort($a);
foreach($a AS $v) {
    echo $v . "<br />";
}

答案 1 :(得分:0)

难以理解的问题,但我认为你正在寻找sort

答案 2 :(得分:0)

$ fruits = array(“lemon”,“orange”,“banana”,“apple”); 排序($水果); 重置($水果); while(list($ key,$ val)= each($ fruits)){    echo“fruits [”。$ key。“] =”。$ val。“\ n”; }

答案 3 :(得分:0)

您的数组已经排序。

抓住内部数组,然后遍历值。

每当第一个字母改变时,你知道它的下一个字母。

答案 4 :(得分:0)

如果您想通过公司名称的第一个字母求助列表,可以采用以下方式:

$sorted = array();
foreach($companies as $company) {
    $sorted[ strtoupper($company{0}) ][] = $company;
}

答案 5 :(得分:0)

只需使用sort()功能对数组进行排序,然后将其打印出来 让这些字母标题只是在第一个字母后面,然后比较前一个:

$old='';
foreach ($words as $name) {
  if ($name[0] != $old) {
    echo $name[0]."<hr>\n";
  }
  echo $name."<br>\n";
  $old=$name[0];
}

答案 6 :(得分:0)

可以使用一些优化,但完全符合您的要求:

    $a = array("Chicken","Fish","Hello","Lebowski","What","hey","foo");

    asort($a);
    $alphaArr = array();

    foreach(range('A', 'Z') as $letter) {

        // create empty array at offset for current letter
        $alphaArr[$letter] = array();

        foreach($a as $item) {

            // if the first letter starts with current letter
            // push it into subarray
            if (substr(strtolower($item),0,1) == strtolower($letter)) {
                $alphaArr[$letter][] = $item;
            }
        }
    }
    print_r($alphaArr);