回到我原来的问题,关于如何检查下一个元素是否以空格开头,如果是,则将它连接到前一个元素。你将如何处理数组有多个级别的情况。
[1] => Array (
[1] => Packages
[2] => Sources
[3] => Reading package
[4] => Sources
[5] => More Sources
[6] => volatile Sources
[7] => volatile
)
输出:
[2] => Array (
[1] => Packages
[2] => Sources Reading package Sources More Sources
[6] => volatile Sources volatile
)
将为第一个空间做到这一点。
for($i = 0; $i < count($array); $i++){
if($array[$i][0] == ' '){
if($i > 0){
$array[$i-1] .= $array[$i];
unset($array[$i]);
}
}
}
答案 0 :(得分:0)
这应该有效(未经测试):
$size = count($array);
for($i = 0; $i < $size; $i++){
$space = true;
for($j = $i + 1; $j < $size && $space; $j++) {
$space = $array[$j][0] == ' ';
if($space){
$array[$i] .= $array[$j];
unset($array[$j]);
}
}
}
答案 1 :(得分:0)
如果你可以确定任何元素中没有特定字符(例如|
),你可以这样做:
$array = explode('|',str_replace('| ',' ',implode('|',$array)));
答案 2 :(得分:0)
$t = array ( 'Packages',
'Sources',
' Reading package',
' Sources',
' More Sources',
'volatile Sources',
' volatile'
);
$n = '';
foreach($t as $k => $v) {
if (substr($v,0,1) == ' ') {
$t[$n] .= $v;
unset($t[$k]);
} else {
$n = $k;
}
}
var_dump($t);