我试图根据位置返回数组字符串,连接并追加到新数组中。
$matches = ([0] => 20170623 004129 982 a [4] => 20170623 004130 982 b [8] =>
20170623 004130 982 b)
foreach ($matches as $match){
$arr2 = explode(" ", $match);
echo $arr2[0] . $arr2[1] . $arr2[2];
for循环适用于爆炸,可以看到数组的每个元素(字符串)被分隔成一个新数组$ arr2,但是每次遍历循环都会覆盖$ arr2。 我的回声多次返回相同的结果(最后一次传递的结果)。每次传球看起来都是一次。
预期输出,可能是这样的:
$arr3 = ([0] => 20170623004129982 [1] => 20170623004130982 [3] =>
20170623004130982)
答案 0 :(得分:1)
您需要array_push()
在你的情况下
<?php
$arr2 = [];
foreach ($matches as $match) {
$values = explode(" ", $match);
array_push($arr2, $values[0], $values[1], $values[2]);
}
var_dump($arr2); // now $arr2 should contain all values
?>
答案 1 :(得分:1)
在foreach之上创建一个数组,因此它不会在每次迭代时重新初始化,并在其中添加每次迭代的值
$arr=[];
foreach ($matches as $match){
$arr2 = explode(" ", $match);
array_push($arr,array_map(function($arr2){
return $arr2;
},$arr2));
echo "<pre>";print_r($arr);
}