$arr1 = ['p1', 'p2','p3','p4','p5','p6','p7'];
$arr2 = ['b1', 'b2','b3','b4','b5','b6','b7','b8','b9','b10','b11', 'b12','b13','b14','b15','b16','b17','b18','b19','b20'];
$num = floor(count($arr2) / count($arr1));
$arr3 = [];
foreach ($arr1 as $key => $value) {
for($i = 0;$i < $num;$i++){
$ind = $key + $i * count($arr1);
$arr3[$key][] = $arr2[$ind];
}
}
$yushu = count($arr2) % count($arr1);
for($n = 0;$n < $yushu;$n ++){
$nu = $n + $num * count($arr1);
$arr3[$n][] = $arr2[$nu];
}
var_dump($arr3);
/*array(7) {
[0] => array(3) {
[0] => string(2) "b1"
[1] => string(2) "b8"
[2] => string(3) "b15"
}
[1] => array(3) {
[0] => string(2) "b2"
[1] => string(2) "b9"
[2] => string(3) "b16"
}
[2] => array(3) {
[0] => string(2) "b3"
[1] => string(3) "b10"
[2] => string(3) "b17"
}
[3] => array(3) {
[0] => string(2) "b4"
[1] => string(3) "b11"
[2] => string(3) "b18"
}
[4] => array(3) {
[0] => string(2) "b5"
[1] => string(3) "b12"
[2] => string(3) "b19"
}
[5] => array(3) {
[0] => string(2) "b6"
[1] => string(3) "b13"
[2] => string(3) "b20"
}
[6] => array(2) {
[0] => string(2) "b7"
[1] => string(3) "b14"
}
}*/