Php 分割数组并创建新数组
我有这样的数组Php 分割数组并创建新数组,php,Php,我有这样的数组 array (size=6) 0 => string '2 16 10 4 0 0 0 0 0' 1 => string '0 0 0 4' 2 => string '2 15 8 6 0 0 0 0 0' 3 => string '0
array (size=6)
0 => string '2 16 10 4 0 0 0 0 0'
1 => string '0 0 0 4'
2 => string '2 15 8 6 0 0 0 0 0'
3 => string '0 0 0 3'
4 => string '3 18 12 5 0 0 0 0 0'
5 => string '0 0 0 2'
我想分割数组并创建一个新数组,如
array1 (size = 1)
0 => '2 16 10 4 0 0 0 0 0 0 0 0 0 4'
array2 (size = 1)
0 => '2 15 8 6 0 0 0 0 0 0 0 0 3'
array3 (size = 2)
0 => '3 18 12 5 0 0 0 0 0 0 0 0 2'
array\u chunk()
工作正常。但是它不支持我的数组您可以通过和foreach()
$new_array = array_chunk($original_array,2);
$final_array = [];
foreach($new_array as $arr){
$final_array[] = $arr[0].' '.$arr[1];
}
print_r($final_array);
$new_array = array_chunk($original_array,2);
$final_array = [];
foreach($new_array as $arr){
$final_array[] = preg_replace('/\s+/', ' ', $arr[0]).' '.preg_replace('/\s+/', ' ', $arr[1]);
}
print_r($final_array);
输出:-
注意:-如果要删除字符串之间的额外空格,请使用
输出:-使用数组块($array\u name,2)
上面将返回多维数组。方法#1:()
方法#2()
两种输出:
array (
0 => '2 16 10 4 0 0 0 0 0 0 0 0 4',
1 => '2 15 8 6 0 0 0 0 0 0 0 0 3',
2 => '3 18 12 5 0 0 0 0 0 0 0 0 2',
)
令我惊讶的是,使用小样本数据集时,方法#1实际上要稍微快一点(但不是很明显)。StackOverflow不是一种编码服务。请提供您迄今为止所尝试的代码片段。@a不,这不是正确的行为。一次又一次地编辑问题和询问代码是不正确的。关于这一点,你必须提出新的问题。谢谢,先生,请帮忙me@Athi正如我所说,通过将问题还原到上一个问题并将答案标记为已接受来结束此问题,然后提出一个新的问题输入+代码努力\预期结果。你肯定会得到答案的。你可以给我地址的链接,如果我有空,我也会回答。
$pairs=array_chunk(preg_replace('/\s+/',' ',$array),2); // reduce spacing and pair elements
foreach($pairs as $pair){
$result[]="{$pair[0]} {$pair[1]}"; // concat 2 elements at a time
}
var_export($result);
array (
0 => '2 16 10 4 0 0 0 0 0 0 0 0 4',
1 => '2 15 8 6 0 0 0 0 0 0 0 0 3',
2 => '3 18 12 5 0 0 0 0 0 0 0 0 2',
)