将PHP rand函数添加到此代码中

时间:2012-02-25 07:25:07

标签: php wordpress

我怎样才能让这些项目每次以随机顺序出现?

            <?php
            for($i = 1; $i <= 5; $i++) {
            $nameN = "name{$i}";
            $$nameN = get_post_meta(get_the_ID(), "ch_client_name{$i}", TRUE);
            // or $name[$i], if you can
            ?>

           <li data-id="<?php the_ID(); ?>" class="<?php echo $clientterms; ?> portfolio-item" data-type="<?php echo $clientterms; ?>">
               <?php echo $$nameN; ?> 
           </li>

           <?php
           } ?>

2 个答案:

答案 0 :(得分:1)

<?php
$numbers = array(1,2,3,4,5);
for ($i = 1; $i <= 5; $i++) {
  $r = rand(0, count($numbers) - 1);
  $nth = $numbers[$r];
  unset ($numbers[$r]); 
  array_unshift ($numbers, array_shift ($numbers)); 
  //Other part of the code

应该有效。它基本上选择一个随机的未显示项,并从数组中删除它。 $nth会存储真实项目的数量。

答案 1 :(得分:0)

为什么要将每个客户端添加到不同的元值?您可以将所有客户端添加到一个元值 - ch_client_name - 它将是数组。这将简化您的结构。

如果你改变你的结构,我建议首先将元数值作为数组,然后使用shuffle并遍历数组。

$clientNames = get_post_meta(get_the_ID(), "ch_client_name");
shuffle($clientNames);

foreach ($clientNames as $clientName){....