2014-02-23 59 views
0

我的數組;php:從數組中獲得隨機值或多值

$array=array("x","y","z","t","k"); 

例如我想獲得從該陣列10分的結果和希望此結果是在順序(陣列順序)&具有隨機數的值。

這樣的:

  1. 結果:X
  2. 結果:X | Y | K
  3. 結果位:Z | K
  4. 結果:Y
  5. 結果:X
  6. 結果:x | y | z | t | k
  7. 結果:y | z | k
  8. result :X |噸
  9. 結果:克
  10. 結果:X | Z

但對於無結果:(因爲這些都不在陣列順序)z的| x或噸| |ÿķ

回答

1

請嘗試以下功能:

function get_random_list($arr, $count) { 
    $result = array(); 
    for ($i = 0; $i < $count; $i++) { 
     $length = mt_rand(1, count($arr)); 
     $keys = (array)array_rand($arr, $length); 
     sort($keys); 
     $items = array(); 
     foreach ($keys as $key) { 
      $items[] = $arr[$key]; 
     } 
     $result[] = $items; 
    } 
    return $result; 
} 

用法:

echo implode("<br />", array_map(function($arr) { 
    return implode("|", $arr); 
}, get_random_list($array, 10))); 

例輸出值:

k<br />x<br />y<br />x|y|z|t|k<br />z<br />y|t|k<br />z<br />y|z<br />z<br />y|k 
+0

@OzzyChigurh:您可以['print_r'(http://php.net/print_r)的函數來查看返回什麼的返回值。 –

+0

您是否可以在此屏幕上編輯您的代碼:y | z | k
x | y | z | t | k
y
... –