数组如下:
Array
(
    [0] => personalized
    [1] => knives
    [2] => engraved
    [3] => swiss
    [4] => army
    [5] => knife
    [6] => pocket
    [7] => engraving
    [8] => personalised
    [9] => hunting
    [10] => custom
    [11] => monogrammed
    [12] => chef
    [13] => gift
    [14] => set
    [15] => bowie
    [16] => ki
)
要求输出结果为随机组合,元素数量不限,只能用一次,匹配出最佳字符串长度为:19-20个,谢谢!
帮忙直接上代码,谢谢

解决方案 »

  1.   

    $a = array (
      0 => 'personalized',
      1 => 'knives',
      2 => 'engraved',
      3 => 'swiss',
      4 => 'army',
      5 => 'knife',
      6 => 'pocket',
      7 => 'engraving',
      8 => 'personalised',
      9 => 'hunting',
      10 => 'custom',
      11 => 'monogrammed',
      12 => 'chef',
      13 => 'gift',
      14 => 'set',
      15 => 'bowie',
      16 => 'ki',
    );
    do {
      shuffle($a);
      for($i=2;$i<6;$i++) {
        $r = join('', array_slice($a, 0, $i));
        if(strlen($r) >= 19) break;
      }
    }while(strlen($r) > 20);
    echo $r, ' ', strlen($r), PHP_EOL;