1

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

用语言排序非常困难,当我用眼睛看时,我没有发现这种类型的问题。我花了几个小时来解决这个问题,但仍然无法解决这个问题。当我取消注释时sort($languages);,它显示数组的索引。

我需要以正确的方式(升序)对类别(即国家/地区)和语言进行排序。

用英语和某些语言进行排序似乎可以正常工作。但对于像日语和其他一些语言这样的语言它不起作用。

<th>标签仅适用于俄罗斯语言类别标签。也请帮助设计。

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

这是我尝试过的。

<!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/>';
   }
4

1 回答 1

0

请检查,您的 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)工作副本在这里

于 2013-02-21T04:49:43.457 回答