我真的很困惑合并两个数组,如果这真的叫做合并或递归模式。我以前见过一些例子,但我真的不明白如何得到我需要的结果。
$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);
答案 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++;
}