$out = [1,2,3,4,5]; $out = array_chunk($out, $k); foreach($out as &$v){ $v = array_reverse($v); } $out2 = []; foreach($out as $v){ $out2 = array_merge($out2, $v); } var_dump($out2);exit; 应该输出 2 1 4 3 5 但结果是 2 1 4 3 4 3 需要把第二个 foreach $v 改成&$v 才行 foreach, out2, out, exit
手册上第一个示例块就说了 PHP: foreach - Manual https://www.php.net/manual/zh/control-structures.foreach.php 在 foreach 使用了 & 的情况下,你再 foreach 下面再 unset 掉就好了。 $out = [1,2,3,4,5]; $out = array_chunk($out, $k); foreach($out as &$v){ $v = array_reverse($v); } // 👇 unset($v); $out2 = []; foreach($out as $v){ $out2 = array_merge($out2, $v); } var_dump($out2);exit;