$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 才行
1 Rache1 2023-10-13 10:44:50 +08:00 手册上第一个示例块就说了 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; |