-6

結合したい 2 つの配列があります。2 つの配列を組み合わせて値を取得する必要があります。

私の最初の配列は次のとおりです。

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

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

そして、これは私の2番目の配列です:

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]と2番目の配列[0]、そして最初の配列[1]と2番目の配列[1]のように組み合わせたいです。最初の配列[0][1]と2番目の配列[0][5]は常に同じで、最初の配列[1][1]と2番目の配列[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 の機能があります。ニーズに合った機能が 1 つ、またはむしろコアにある可能性があります。

ばかげすぎずに、希望する結果に最も近いのは次のとおりです。

$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) "a"
    [1]=>
    文字列(2) "1a"
    [2]=>
    string(7) "アイアイ"
    [3]=>
    string(6) "女性"
  }
  [1]=>
  配列(4) {
    [0]=>
    文字列(1) "b"
    [1]=>
    文字列(2) "2b"
    [2]=>
    string(5) "MgMg"
    [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 に答える