// 方式一
for($i=1; $i<=4; $i++){
$array[] = $i;
}
for($i=0; $i<count($array); $i++){
for($j=0; $j<count($array)-$i-1; $j++) {
$array2[] = [$array[$i], $array[$i+$j+1]];
}
}
print_r($array2);
// 结果
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 1
[1] => 3
)
[2] => Array
(
[0] => 1
[1] => 4
)
[3] => Array
(
[0] => 2
[1] => 3
)
[4] => Array
(
[0] => 2
[1] => 4
)
[5] => Array
(
[0] => 3
[1] => 4
)
)
// 方式二
$arr = ['A', 'B', 'C', 'D'];
$new_arr = [];
while (count($arr) > 1) {
$item = array_shift($arr);
foreach ($arr as $value) {
$new_arr[] = [$item, $value];
}
}
var_dump($new_arr);
// 方式三
// 数组中任意两个元素之间都要组合一下
$r = [];
$arr = array('A','B','C','D');
$num = count($arr);
for ($i=0;$i<$num; $i++) {
for($j=$num-1; $j>$i; $j--){
$r[] = [$arr[$i], $arr[$j]];
}
}
print_r($r);
// 并非这种切数组
$input_array = array('a', 'b', 'c', 'd', 'e');
var_dump(array_chunk($input_array, 2));
// 结果
array(3) {
[0]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
[1]=>
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
[2]=>
array(1) {
[0]=>
string(1) "e"
}
}