我有以下数组:
Array ( [0] => Array ( [0] => Bob
[1] => Freddy
)
[1] => Array ( [0] => IT Dev
[1] => Programmer
)
[2] => Array ( [0] => 123
[1] => 23423
)
)
我正在尝试将数组连接在一起,所以它看起来如下所示:
Bob-IT开发人员-123
Freddy-程序员-23423
我一直在摆弄内爆函数,但实际上我不知道如何在PHP 中实现这一点
如有任何帮助,我们将不胜感激。
非常感谢
最大
如果您的数组被称为$myArray
,那么:
foreach ($myArray as $row)
{
$string1 .= $row[0]."-";
$string2 .= $row[1]."-";
}
echo $string1."<br>";
echo $string2."<br>";
假设这是您的数组:
$array = array(
array('Bob', 'Freddy'),
array('IT Dev', 'Programmer'),
array('123', '23423')
);
你必须循环遍历每个数组,将它们连接成一个句子。
$result = array();
foreach($array as $data){
foreach($data as $index => $value){
if(!isset($result[$index]))
$result[$index] = $value;
else
$result[$index] .= " - " . $value;
}
}
现在,如果您var_dump
$result
:
array(2) {
[0]=>
string(18) "Bob - IT Dev - 123"
[1]=>
string(27) "Freddy - Programmer - 23423"
}
如果你想访问一个单独的句子,你可以这样做:
echo $result[0]; // Bob - IT Dev - 123
只需使用array_column并内爆即可获得输出。
阵列:
$arr = array(
array('Bob', 'Freddy'),
array('IT Dev', 'Programmer'),
array('123', '23423')
);
机制:
echo implode(" - ", array_column($arr, 0)); //Bob - IT Dev - 123
echo implode(" - ", array_column($arr, 1)); //Freddy - Programmer - 23423
我有两个坚实的方法。第一种是"可变方法"(... splat operator
),第二种是利用array_column()
的经典foreach循环。
代码:(演示)
$array=[
['Bob','Freddy'],
['IT Dev','Programmer'],
[123,23423]
];
// Use this to see that both methods are flexible and produce the same result,
// so long as all subarrays have equal length.
// If there are differences in length, depending where the hole is, the results
// between the two methods will vary slightly.
// (The 1st method best preserves the intended output structure.)
/*$array=[
['Bob','Freddy','Jane'],
['IT Dev','Programmer','Slacker'],
[123,23423,0],
['more1','more2','more3']
];*/
// this one requires php5.6 or better
$imploded_columns=array_map(function(){return implode(' - ',func_get_args());},...$array);
var_export($imploded_columns);
echo "nn";
unset($imploded_columns);
// or you can go with a sub-php5.6 version:
foreach($array[0] as $k=>$v){
$imploded_columns[]=implode(' - ',array_column($array,$k));
}
var_export($imploded_columns);
两种方法的输出:
// variadic method
array (
0 => 'Bob - IT Dev - 123',
1 => 'Freddy - Programmer - 23423',
)
// foreach method
array (
0 => 'Bob - IT Dev - 123',
1 => 'Freddy - Programmer - 23423',
)