2014-02-23 54 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
... –