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 に答える