PHP随机选择选项的顺序

Hue*_*Hue 0 php

我的页面中有以下选择选项,我想按顺序随机化.

<select class="selectpicker1 show-menu-arrow span2" onchange="updatePreview();">
    <option data-content="<img src='img/render/3-thumb.jpg'>" value="3.jpg">three</option>
    <option data-content="<img src='img/render/5-thumb.jpg'>" value="5.jpg">five</option>     
    <option data-content="<img src='img/render/1-thumb.jpg'>" value="1.jpg">one</option>
    <option data-content="<img src='img/render/2-thumb.jpg'>" value="2.jpg">two</option>
    <option data-content="<img src='img/render/4-thumb.jpg'>" value="4.jpg">four</option>   
    <option data-content="<img src='img/render/6-thumb.jpg'>" value="6.jpg">six</option>  
    <option data-content="<img src='img/render/7-thumb.jpg'>" value="7.jpg">six</option>    
  </select>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有以下代码,但它不起作用,这是随机化订单的最简单方法吗?并且代码有问题吗?

<?php 
  $options=array( '<option data-content="<img src="img/render/3-thumb.jpg">" value="3.jpg">three</option>', 
  '<option data-content="<img src="img/render/5-thumb.jpg">" value="5.jpg">five</option>', 
  '<option data-content="<img src="img/render/1-thumb.jpg">" value="1.jpg">one</option>'); 
  shuffle($options); 
  echo '<select class="selectpicker1 show-menu-arrow span2" onchange="updatePreview();">'; 
  foreach ($options as $picker) { 
  echo '$picker'; } 
  echo '</select>'; ?>
Run Code Online (Sandbox Code Playgroud)

Ama*_*ali 5

变量在单引号内时不进行插值.

echo '$picker'; } 
Run Code Online (Sandbox Code Playgroud)

应该只是:

echo $picker; } 
Run Code Online (Sandbox Code Playgroud)

此外,为了修复HTML标记,您可以简单地转义引号,如下所示:

'<option data-content=\'<img src="img/render/3-thumb.jpg">\' 
value="3.jpg">three</option>'
Run Code Online (Sandbox Code Playgroud)

而且,为了缩短这个,你可以foreach用一个简单的implode()语句替换循环,如下所示:

shuffle($options); 
echo '<select class="selectpicker1...">';
echo implode("\n", $options); 
echo '</select>'; 
Run Code Online (Sandbox Code Playgroud)

演示!