如何使用PHP合并两个数组

时间:2017-04-01 22:18:48

标签: php arrays merge

我真的很困惑合并两个数组,如果这真的叫做合并或递归模式。我以前见过一些例子,但我真的不明白如何得到我需要的结果。

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3');

我希望得到像A1 B1,A1 B2,A1 B3这样的东西。然后是A2 B1,A2 B2,A2 B3,然后是A3 B1,A3 B2,A3 B3,但我似乎并不了解应如何做到这一点。 我在网上找到了这个代码

function get_combinations($arrays) {
    $result = array(array());
    foreach ($arrays as $property => $property_values) {
        $tmp = array();
        foreach ($result as $result_item) {
            foreach ($property_values as $property_key => $property_value) {
                $tmp[] = $result_item + array($property_key => $property_value);
            }
        }
        $result = $tmp;
    }
    return $result;
}

我尝试更改其中的一些值,但它对我没有用,因为我不知道如何在示例中制作这样的内容。如果某处有重复,请原谅我,我只是不知道如何使其发挥作用。任何帮助将不胜感激。

答案: 好的,谢谢你们,我真的能够让它发挥作用。由于我的帐户存在一些限制,我无法以正常方式回复。感谢chris85的榜样。它很棒。我能够将这些值存储到数组中。这是我的代码:

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3');
$myarray = array();

    foreach($arrays as $value) {
    foreach($result as $value2){
    $myarray[] = $value . $value2;
         }
    }
        print_r ($myarray);

2 个答案:

答案 0 :(得分:1)

<?php

$array1 = array('A1','A2','A3'); 
$array2 = array('B1','B2','B3');
foreach($array1 as $val1) {
    foreach($array2 as $val2)echo $val1.$val2. " "; 
    echo "\n";
}

Output:

A1B1 A1B2 A1B3 
A2B1 A2B2 A2B3 
A3B1 A3B2 A3B3 

答案 1 :(得分:1)

您的目的不适合一维阵列。您必须使用对或二维数组作为结果。您所需的操作实际上是笛卡尔积。

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3');
$i=0;
foreach($arrays as $value1)
  foreach($result as $value2)
    {
    $final[$i][1]=$value1;
    $final[$i][2]=$value2;
    $i++;
    }