简单的解决方案
$a = [0 => "John has a", 1 => "and a", 2 => "!" ];
$b = [0 => "Slingshot", 1 => "Potato"];
vsprintf(implode(" %s ", $a),$b);
Use array_map
before implode
$a = [0 => "John has a", 1 => "and a", 2 => "!" ];
$b = [0 => "Slingshot", 1 => "Potato"];
$data = [];
foreach(array_map(null, $a, $b) as $part) {
$data = array_merge($data, $part);
}
echo implode(" ", $data);
另一个例子 :
$data = array_reduce(array_map(null, $a, $b), function($a,$b){
return array_merge($a, $b);
},array());
echo implode(" ", $data);
两者都会输出
John has a Slingshot and a Potato !
Demos
现场演示1
现场演示2