代码之家  ›  专栏  ›  技术社区  ›  gtilflm

PHP-从数组中获取5个唯一值

  •  0
  • gtilflm  · 技术社区  · 11 年前

    我有一组字母,我想选出5个唯一的字母。

    $variable_array = array('x', 'n', 'f', 'w', 'g', 'r', 'c', 'm', 'y', 'u', 'p', 'a', 'd', 'h', 'k', 'z');
    

    所以,我想要这样的东西。。。

    $variable_1 = $variable_array[array_rand($variable_array)];
    $variable_2 = $variable_array[array_rand($variable_array)];
    $variable_3 = $variable_array[array_rand($variable_array)];
    $variable_4 = $variable_array[array_rand($variable_array)];
    $variable_5 = $variable_array[array_rand($variable_array)];
    

    但是所有的变量都需要是唯一的。我知道在Stackoverflow上已经有其他类似的答案了,但它们似乎都与我的情况略有不同。有什么想法吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   djot    11 年前

    PHP shuffle(): http://php.net/manual/en/function.shuffle.php

    // make sure you have only unique values in your array
    // $variable_array = array_unique($variable_array);
    
    
    // randomize array
    shuffle($variable_array);
    
    // get 5 elements like suggested in the comments:
    // $top5_array = array_slice($variable_array, 0, 5);
    $top5_array = ARRAY();
    
    // do 5 times ...
    //
    // if (is_array($variable_array) AND count($variable_array) >=5) {
    //
    for ($i=0; $i<=4; $i++) {
      $top5_array[] = $variable_array[$i];
      print $variable_array[$i].'<br />';
    }
    
    var_dump($top5_array);