close

http://vawidea.org/php%20bible/group.php-3.htm

陣列處理函式庫

http://vawidea.org/php%20bible/function.php-shuffle.htm

將陣列的順序弄混。

---


 

陣列處理函式庫


 

 

本函式庫共有 23 個函式

array:

建立一個新的陣列。

array_walk:

讓使用者自訂函數能處理陣列中的每一個元素。

arsort:

將陣列的值由大到小排序。

asort:

將陣列的值由小到大排序。

count:

計算變數或陣列中的元素個數。

current:

傳回陣列中目前的元素。

each:

傳回陣列中下一個元素的索引及值。

end:

將陣列的內部指標指到最後的元素。

key:

取得陣列中的索引資料。

ksort:

將陣列的元素依索引排序。

list:

列出陣列中元素的值。

next:

將陣列的內部指標向後移動。

pos:

傳回陣列目前的元素。

prev:

將陣列的內部指標往前移動。

range:

建立一個整數範圍的陣列。

reset:

將陣列的指標指到陣列第一個元素。

rsort:

將陣列的值由大到小排序。

shuffle:

將陣列的順序弄混。

sizeof:

獲知陣列的大小。

sort:

將陣列排序。

uasort:

將陣列依使用者自定的函式排序。

uksort:

將陣列的索引依使用者自定的函式排序。

usort:

將陣列的值依使用者自定的函式排序。


 



 

 

---------------------

shuffle 

將陣列的順序弄混。

語法: void shuffle(array array);

傳回值: 無

函式種類: 資料處理

 

 

內容說明

本函式將陣列以隨機的方式使全部元素重新亂排。

 

 

使用範例

<?
$numbers = range(1,20);
srand(time());
shuffle($numbers);
while (list(,$number) = each($numbers)) {
  echo "$number ";
}
?>

注意:  
ccunning@math.ohio-state.edu 指出 (31-May-1999),在 Solaris 上由於受了 libc 函式館的影響,會使本函式出現問題。目前解決的方式如下面的例子。(註: 或許之後新的 PHP 版本會修正這個問題。)
<?
function myshuffle($array) {
   mt_srand((double) microtime()*1000000);
   $num = count($array);
   for ($i=0; $i<$num-1; $i++) {
      $n = mt_rand($i+1,$num);
      $temp = $array[$n];
      $array[$n] = $array[$i];
      $array[$i] = $temp;
   }
}
$array = array(1,2,3,4,5,6,7,8,9,10);
myshuffle(&$array);
while (list(,$var)=each($array)) {
   echo $var . " ";
}
?>

 

 

參考

arsort()  asort()  ksort()  rsort()  sort()  usort()  

----------------

123

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()