PHP 提供了一个 shuffle() 函数,可以打乱给定的数组排序,但是此函数“将删除原有的键名而不仅是重新排序”,如果传入的是关联数组,则关联数组的键名将丢失,本文介绍的函数可以解决这一问题。
<?php // 说明:PHP 中打乱(shuffle)关联数组的排序 // 整理:http://www.CodeBit.cn $arr = array( 'Javascript'=>'253', 'CSS'=>'612', 'PHP/MySQL'=>'1036', '(X)HTML'=>'361', 'Ajax'=>'492', ); // 打乱关联数组的排序 function shuffle_assoc($array) { $randomized_keys = array_rand($array, count($array)); foreach($randomized_keys as $current_key) { $output[$current_key] = $array[$current_key]; } return $output; } echo "<pre>"; print_r($arr); echo "</pre><hr />"; echo "<pre>"; print_r(shuffle_assoc($arr)); echo "</pre><hr />"; ?>