阵列随机混洗,同时在树枝中有约500行

khe*_*nik 5 javascript php arrays symfony twig

我正在基于数据库在控制器中创建一个大数组.然后在树枝上我展示它.问题是,有时,随机,这个数组似乎被洗牌.刷新页面后,这是正常的,但是它再次被洗牌,在正常情况下没有模式.

控制器中的PHP数组看起来不错,没有问题.然后我将它传递给模板:

return $this->render('AcmeBundle:FooController:bar.html.twig', [
  'allResults' => $results
]);
Run Code Online (Sandbox Code Playgroud)

然后在twig模板中显示它:

{% for r in allResults %}
  {{ r.id }} {{ r.name }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

现在发生的是它有时会导致页面看起来像这样:

在此输入图像描述

我在twig模板中创建了dump来查看数组本身的样子,我得到了:

array (size=437)   'karmv>
   psa' =>      array (size=4)   ;">
'id' => string 'karmv>
   psa' (length=13)   ;">
'pid' => string 'lias="drapa v>zwierzat' (length=22)   ;">
'pr" uct_count' => string '1' (length=1)   ;">
'popularity' => string '766' (length=3)   'wor  dgimna =>      array (size=4)   ;">
'id' => string 'wor  dgimna  (length=18)   ;">
'pid' => string 'y-ertcol-md-3" s' (length=16)   ;">
'pr" uct_count' => string '1' (length=1)   ;">
'popularity' => string '741' (length=3)   'gadz   
elektroniczne' =>      array (size=4)   ;">
'id' => string 'gadz   
elektroniczne' (length=21)   ;">
'pid' => string 'gadz   
Run Code Online (Sandbox Code Playgroud)

虽然它没问题,但看起来像这样:

array (size=437)
  'karma-dla-psa' => 
    array (size=4)
      'id' => string 'karma-dla-psa' (length=13)
      'pid' => string 'akcesoria-dla-zwierzat' (length=22)
      'product_count' => string '41' (length=1)
      'popularity' => string '412' (length=3)
  'worki-gimnastyczne' => 
    array (size=4)
      'id' => string 'worki-gimnastyczne' (length=18)
      'pid' => string 'sport-dla-dzieci' (length=16)
      'product_count' => string '151' (length=1)
      'popularity' => string '74' (length=3)
  'gadzety-elektroniczne' => 
    array (size=4)
      'id' => string 'gadzety-elektroniczne' (length=21)
      'pid' => string 'gadzety-komputerowe' (length=19)
      'product_count' => string '71' (length=2)
      'popularity' => string '441' (length=3)
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么会这样?

小智 2

我从未使用过 twig 或读过它,但根据我的经验,如果您从数据库中提取数据,您应该对其进行排序,order by因为在处理数据之前不确定如何对数据进行排序。

一旦数组中有数据,您就可以根据需要将其随机化。

希望这个对你有帮助。