如何对所有国家/地区进行排序';s和在PHP中使用多维数组的语言


How to Sort all country's and Languages using Multidimensional Array in PHP?

我正在做一个项目,我必须按升序对所有国家/地区和语言进行排序并显示。

用语言排序很难,我瞪大眼睛的时候总会发现这类问题。我花了几个小时来解决这个问题,但还是解决不了。当我取消对sort($languages);的注释时,它会显示数组的索引。

我需要类别(即国家)和语言以正确的方式排序(升序)。

用英语和某些语言进行排序似乎效果不错。但对于日语和其他一些语言来说,这是行不通的。

并且<th>标记仅适用于RussianLanguagesCategort标记。也请帮忙设计。

如果你能解决这个问题,我将非常感谢你。提前感谢。。。

这是我试过的。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>
<?php 
$languages = array(
'Russia' => array(
                'Russian'=>'rʌʃə',
                ),
'Japan'=>array('Japanese'=>"日本" ,'America'=>'アメリカ'),
'India' => array(
                'Bengali' => "ગુજરાતી", 
                'Hindi'   => 'क्रिकेट',
               'Telugu'   => "తెలుగు",
               'Malyalam'   => "മലയാളം",
               'Oriya' => 'ଓଡ଼ିଆ oṛiā',
               'Kannda' => 'ಕನ್ನಡ ಲಿಪಿ',
               'Kashmiri'=>'کٔشِیر',
               'Konkani' => 'कोंकणस्थ',
               'Panjabi' => 'ਪੰਜਾਬੀ',
               'Sanskrit'=>'संस्कृत',
               'Tamil' => 'தமிழ்'
        ));
        //sort($languages);
    echo "<table border='1' ><tr><td>";
        foreach ($languages as $obj_key =>$book){
        echo "<th>$obj_key Languages Category</th>";
                echo "<table border='1'>";
                    foreach ($book as $key=>$value){
                    echo "<tr><td>$key </td><td> $value</td></tr>";
                    }
                echo "</td></tr></table>";
        }
    echo "</table>";
?>
</body>
</html> 

这个问题到这里还没有解决。我需要用人类语言(升序)对它进行排序,那里有6800种语言。而不使用多维数组。通过关联数组。

    $languages=array ('アメリカ','日本','ગુજરાતી','क्रिकेट','తెలుగు','മലയാളം','ଓଡ଼ିଆ oṛiā','ಕನ್ನಡ ಲಿಪಿ','کٔشِیر','कोंकणस्थ','ਪੰਜਾਬੀ','संस्कृत','தமிழ்');
   //sort ($languages);
   foreach ($languages as $language) {
      echo $language.'<br/>';
   }

请检查,您的html结构不正确。

我认为应该如下

    echo "<table border='1' >";
    foreach ($languages as $obj_key =>$book){
    echo "<thead><tr><th>$obj_key Languages Category</th></tr></thead>";
                foreach ($book as $key=>$value){
                    echo "<tr><td>$key - $value</td></tr>";
                }
    }
    echo "</table>";

我看到你在使用嵌套表,但首先在普通表中检查它

解决方案

在你的语言数组之后

ksort($languages);
echo "<table border='1' >";
    foreach ($languages as $obj_key =>$book){
        echo "<thead>
                   <tr>
                      <th>$obj_key Languages Category</th>
                   </tr>
              </thead>";
        ksort($book );
        foreach ($book as $key=>$value){
              echo "    <tr><td>$key - $value</td></tr>" . PHP_EOL;
        }
    }
    echo "</table>";

这对你很管用(http://codepad.org/dnZuvfjr)此处的工作副本