【问题标题】:RTL does not shows records as expectedRTL 未按预期显示记录
【发布时间】:2013-07-08 05:02:43
【问题描述】:

我在用 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;
}

简而言之,这就是问题所在:数字都是按升序输出的,除非我以从右到左的方式工作。

对此有何解释?我做错了什么。

【问题讨论】:

  • 这个问题有什么更新吗?如果没有,你能发布一些输出吗?

标签: php right-to-left dynamic-data-display


【解决方案1】:

我不确定你是如何在你的网站上支持从右到左的,我还不能发表评论来要求你澄清一下(除了截图之外,一些 html 输出会很有用),所以我'我在猜。

在我看来,您的第二个屏幕截图没有显示您所说的顺序。仔细观察括号之间的内容,RTL 顺序结果似乎与之前相同 - 书 5,第一行 - 从左到右阅读,但将 32 ( 推到右侧并反转,使其看起来像 @987654322 @。第二行类似:右侧的). 被推到左侧为.(

我不明白它是如何搞砸的,但这似乎不是排序问题,而是与 RTL 显示相关的布局问题。我会检查 PHP 的输出是否是带有 RTL 选项的 html 所期望的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多