Right-To-Left をサポートする PHP でサイトを開発しているときに、奇妙な問題が発生します。
以下の 2 つのスクリーンショットをご覧ください。
まずは通常出力。
2 つ目は RTL データ表示です。
ご覧のとおり、データはページ番号順に表示されません。
通常の出力では、数値は 32、次に 43、67、88、325 と表示されます。しかし、Right-To-Left 出力では、数値は昇順で表示されません。代わりに、最初に 32、次に 88、67、43 などを出力します。
上記の出力 (これらのスクリーンショットに表示) では、以下のコードを使用しました。
aasort($index['Book']['Index'],"page_number");
foreach($index['Book']['Index'] as $newIndex) :
$indLink = stripslashes($newIndex['content']);
$indPageNumberLink = $newIndex['page_number'];
$booksIndex .= " <span>". $indPageNumberLink ." (". $indLink ."). </span>";
endforeach;
echo "<dd class='bookindex_content'> ". rtrim($booksIndex,",") ."</dd></dl>";
そして、これは私のaasort
機能です:
function aasort (&$array, $key)
{
$sorter = array();
$ret = array();
reset($array);
foreach ($array as $ii => $va)
{
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va)
{
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
つまり、これが問題です。Right-To-Left で作業している場合を除き、数値はすべて昇順で出力されます。
これについての説明は何ですか?私は何を間違っていますか。