我在PHP中使用从右到左的支持开发网站时遇到了一个奇怪的问题。
看看下面这两个截图。
首先是正常输出。
,其次是RTL数据显示。
如您所见,数据不按页码顺序显示。
在正常输出中,数字显示32,然后是43,然后是67,88和325.然而,在从右到左输出中,数字显示为升序。相反,他们输出:前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;
}
简而言之,这就是问题所在:数字全部按升序输出,除非我在“从右到左”工作。
对此有何解释?我做错了什么。
答案 0 :(得分:0)
我不确定你是如何在你的网站上做左右支持的,我还不能发表评论要求你做一些澄清(除了屏幕截图之外还有一些html输出是有用的)所以我'我试图猜测。
在我看来,您的第二个屏幕截图并未显示您所说的订单。仔细观察括号之间的内容,RTL顺序结果看起来与之前的第5行相同 - 第一行 - 从左到右阅读,但32 (
被推到右边并反转,看起来像) 32
。第二行有类似的内容:右侧的).
向左推到.(
。
我不明白它是如何混乱的,但它似乎不是一个排序问题,而是与RTL显示相关的布局问题。我会检查PHP的输出是否是带有RTL选项的html所期望的。