自己研究的话,可以这样写$team = array('武汉','广州','北京','上海','四川','香港','台湾');$max = count($team);
$teammax = $max - 1 ;
for ($i=0;$i<$max;$i++) {
  for ($o=$i+1;$o<=$teammax;$o++) {
    if ($i == $o) {
      continue;
    }else {
      echo $team[$i] . ' vs ' . $team[$o];
      if ($o == $teammax){
        echo "<hr>";
      } else{
        echo "<br/>";
      }
    }
  }
}武汉 vs 广州
武汉 vs 北京
武汉 vs 上海
武汉 vs 四川
武汉 vs 香港
武汉 vs 台湾
--------------------------------------------------------------------------------
广州 vs 北京
广州 vs 上海
广州 vs 四川
广州 vs 香港
广州 vs 台湾
--------------------------------------------------------------------------------
北京 vs 上海
北京 vs 四川
北京 vs 香港
北京 vs 台湾
--------------------------------------------------------------------------------
上海 vs 四川
上海 vs 香港
上海 vs 台湾
--------------------------------------------------------------------------------
四川 vs 香港
四川 vs 台湾
--------------------------------------------------------------------------------
香港 vs 台湾
--------------------------------------------------------------------------------

解决方案 »

  1.   

    $arr = array(4,3,2,1,5,6,7,8);
    $round = 0;  //设置轮次
    $arr1 = array_merge($arr, $arr);
    $round %= 8;
    echo $arr1[$round],$arr1[$round+1],$arr1[$round+2],$arr1[$round+3];
      

  2.   

    这个意思?$ar = array(1, 2, 3, 4, 5, 6, 7, 8);
    $len = count($ar);
    for($i=1; $i<$len; $i++) {
      foreach(array_chunk($ar, $len/2) as $v) {
        echo join('', $v), PHP_EOL;
      }
      $t = array_splice($ar, 1, 1);
      $ar = array_merge($ar, $t);
      echo PHP_EOL;
    }1234
    56781345
    67821456
    78231567
    82341678
    23451782
    34561823
    4567