-6

我有两个要组合的数组。我需要通过组合它们从两个数组中获取值。

我的第一个数组是:

Array
(
    [0] => Array
        (
            [1] => a
            [2] => 1a
        )

    [1] => Array
        (
            [1] => b
            [2] => 2b
        )
)

这是我的第二个数组:

Array
(
   [0] => Array
        (
            [1] => Aye Aye
            [2] => 18
            [3] => Female
            [4] => Yangon
            [5] => a
        )
  [1] => Array
      (
          [1] => Mg Mg
          [2] => 20
          [3] => Male
          [4] => Mandalay
          [5] => b
      )
)

我想这样组合:

Array(
  [0] => Array
        (
            [1] => a
            [2] => 1a
        [3] => Aye Aye
            [4] => 18
            [5] => Female
            [6] => Yangon
            [7] => a
       )
 [1] => Array
      (
            [1] => b
            [2] => 2b
        [3] => Mg Mg
            [4] => 20
            [5] => Male
            [6] => Mandalay
            [7] => b
      )
)

我想组合第一个数组 [0] 和第二个数组 [0],以及第一个数组 [1] 和第二个数组 [1]。第一个数组[0][1] 和第二个数组[0][5] 总是相同的,然后第一个数组[1][1] 和第二个数组[1][5] 也是。请...

4

2 回答 2

1

听起来你在寻找array_merge,或者array_merge_recursive

也许更合适的是:

$result = array();
for($i=0, $j= count($arr1);$i<$j;$i++)
{//standard loop over array
    $result[$i] = array_merge($arr1[$i], $arr2[$i]);
}

那应该给你你需要的东西。但是,请务必查看各种array_*功能,总共有 79 个功能,很可能有一个可以满足您的需求,或者更确切地说是核心功能。

我能得到的最接近你想要的结果,而不是傻是这样的:

$result = array();
for($i=0, $j= count($arr1);$i<$j;$i++)
{//standard loop over array
    unset($arr2[$i][3]);
    $arr2[$i] = array_filter($arr2[$i], 'is_string');//gets rid of all the numbers
    $result[$i] = array_unique(array_merge($arr1[$i], $arr2[$i]));
}

这输出:

数组(2){
  [0]=>
  数组(4){
    [0]=>
    字符串(1)“一个”
    [1]=>
    字符串(2)“1a”
    [2]=>
    string(7) "是啊是啊"
    [3]=>
    字符串(6)“女性”
  }
  [1]=>
  数组(4){
    [0]=>
    字符串(1)“b”
    [1]=>
    字符串(2)“2b”
    [2]=>
    字符串(5)“镁镁”
    [3]=>
    字符串(4)“男性”
  }
}
于 2013-06-25T10:54:13.823 回答
0

来自 PHPDocs

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

(或者)

<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
于 2013-06-25T10:55:30.867 回答