如何在PHP中混洗列表

时间:2016-05-27 11:03:44

标签: php

我一直在查看stackoverflow,我发现没有回答我的问题,关于如何在不获取关联数组的情况下对列表进行混洗。由于我的代码使用shuffle_assoc,我得到了关联数组,但使用shuffle并没有让我到任何地方,所以现在我转到这里。      

        function shuffle_assoc($list) {
            if (!is_array($list)) return $list;

            $keys = array_keys($list);
            shuffle($keys);
            $random = array();
            foreach ($keys as $key) {
                $random[] = $list[$key];
            }
            return $random;
        }

        $arr = array();
        $arr[] = "test 1<br>";
        $arr[] = "test 2 <br>";
        $arr[] = "test 3 <br>";
        $arr[] = "test 4 <br>";
        print_r(shuffle_assoc($arr));
 ?>

This is how it looks when I run the code

但是我不想显示Array ([0] =>部分,我只想在每次运行代码时随机调整测试(1/2/3/4)列表。

2 个答案:

答案 0 :(得分:3)

print_r函数显示数据。所以当你给它数组时它打印数组。您需要将数组内爆为字符串:

echo  implode('',shuffle_assoc($arr));

编辑:
或者只是

echo  implode('',shuffle($arr));

答案 1 :(得分:0)

试试这个:

$array = shuffle($arr);
foreach($array as $a)
{
    echo $a;
}