连接两个数组的值

时间:2014-10-31 12:54:59

标签: php arrays sorting

假设我有一个两个数组,我想将每个值与数组的另一个值合并。

数组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循环中执行此操作?

3 个答案:

答案 0 :(得分:2)

foreach循环中需要foreach循环。 (实际上,你必须遍历两个数组以获得两个数组的连接产品,实际上你不需要两个foreach循环)。您可以混合:whilesforeachfor或php过滤器/交叉数组函数

实施例

$array1 = array(1,2);
$array2 = array(3,4);
$result = array();

foreach ($array1 as $item1){
   foreach($array2 as $item2){
      $result[] = $item1.','.$item2;
   }
}

https://eval.in/215001

您的结果数组长度为array1.Length * array2.Length

2d数组

您还可以将数组放入数组中,如下所示:

$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 )