我得到了这个数组:
array (
0 => 'K.',
1 => 'Vrachtschip',
2 => 'L.',
3 => 'Gevechtsschip',
4 => 'Z.',
5 => 'Gevechtsschip',
6 => 'Kruiser',
7 => 'Slagschip',
8 => 'Bommenwerper',
9 => 'Vernietiger',
10 => 'Interceptor.',
)
我可以将项目[0]
与[1]
合并,因为K. vrachtschip必须在一起。
同一个屁[2]
和[3]
;和[4]
与[5]
。如果有一个字母,然后是一个点(k。),它必须与下面的数组项合并。
任何可以帮助我的人:)?
答案 0 :(得分:2)
怎么样:
$arr = array (
'K.',
'Vrachtschip',
'L.',
'Gevechtsschip',
'Z.',
'Gevechtsschip',
'Kruiser',
'Slagschip',
'Bommenwerper',
'Vernietiger',
'Interceptor',
'B.',
);
$concat = '';
$result = array();
foreach ($arr as $elem) {
if (preg_match('/^[A-Z]\.$/', $elem)) {
$concat = $elem;
continue;
}
$result[] = $concat.$elem;
$concat = '';
}
if ($concat) $result[] = $concat;
print_r($result);
<强>输出:强>
Array
(
[0] => K.Vrachtschip
[1] => L.Gevechtsschip
[2] => Z.Gevechtsschip
[3] => Kruiser
[4] => Slagschip
[5] => Bommenwerper
[6] => Vernietiger
[7] => Interceptor
[8] => B.
)
答案 1 :(得分:0)
尝试使用正则表达式来测试数组的所有条目。
如果发生了事件,则将您的entrie的值与下一个值相连。
答案 2 :(得分:0)
我可能会做以下(伪代码):
/^[a-z]\.$/i
匹配?答案 3 :(得分:0)
我会尝试这样的事情:
for($idx=0, $max = count($array_in); $idx < $max; $idx++)
{
if(preg_match('/^[a-z]\.$/i', $array_in[$idx]))
{
$array_out[] = $array_in[$idx].$array_in[$idx+1];
$idx++;
}
else
{
$array_out[] = $array_in[$idx];
}
}