假设我有一个两个数组,我想将每个值与数组的另一个值合并。
数组1
array (size=2) 0 => 1 1 => 2
数组2
array (size=2) 0 => 3 1 => 4
通缉结果数组/字符串:
array (size=4) 0 => '1,3' 1 => '1,4' 2 => '2,3' 3 => '2,4'
我无法理解它。显然,我需要将每个数组键/值与其他数组键合并。是否有更优雅的方式然后在while / foreach循环中执行此操作?
答案 0 :(得分:2)
foreach
循环中需要foreach
循环。 (实际上,你必须遍历两个数组以获得两个数组的连接产品,实际上你不需要两个foreach
循环)。您可以混合:whiles
,foreach
,for
或php过滤器/交叉数组函数
$array1 = array(1,2);
$array2 = array(3,4);
$result = array();
foreach ($array1 as $item1){
foreach($array2 as $item2){
$result[] = $item1.','.$item2;
}
}
您的结果数组长度为array1.Length * array2.Length
您还可以将数组放入数组中,如下所示:
$array1 = array(1,2);
$array2 = array(3,4);
$result = array();
foreach ($array1 as $item1){
foreach($array2 as $item2){
$result[] = array($item1, $item2);
}
}
//$result[0][0] = 1 -- $result[0][1] = 3
//$result[1][0] = 1 -- $result[1][1] = 4
//$result[2][0] = 2 -- $result[2][1] = 3
//$result[3][0] = 2 -- $result[3][1] = 4
我们将其称为2d(2维)数组,因为您可以将其显示为网格,如上所示。如果你将一个数组放在一个数组内的数组内,你可以称之为三维数组等。
的print_r($结果);在php:
Array
(
[0] => Array
(
[0] => 1
[1] => 3
)
[1] => Array
(
[0] => 1
[1] => 4
)
[2] => Array
(
[0] => 2
[1] => 3
)
[3] => Array
(
[0] => 2
[1] => 4
)
)
答案 1 :(得分:1)
试
$a= array ('0' => 1,'1' => 2);
$b= array ('0' => 3,'1' => 4);
for($i=0; $i<count($a); $i++) {
for($j=0; $j<count($b); $j++) {
$newarr[]= $a[$i].','.$b[$j];
}
}
print_r($newarr);//Array ( [0] => 1,3 [1] => 1,4 [2] => 2,3 [3] => 2,4 )
答案 2 :(得分:1)
$a=array('1','2');
$b=array('3','4');
$res=array();
for($i=0;$i<count($a);$i++)
{
foreach($b as $bb)
{
$res[]=strval($a[$i].','.$bb);
}
}
print_r($res);//output=Array ( [0] => 1,3 [1] => 1,4 [2] => 2,3 [3] => 2,4 )