我有以下两个数组:
$mixed_carriers[0] = array(
0 => "134",
1 => "138",
2 => "200",
);
$mixed_carriers[1] = array(
0 => "272"
);
我想将它们组合起来,并获得它:
$mixed_carriers = array(
0 => "134,272,",
1 => "138,272,",
2 => "200,272,"
);
我需要合并两个数组,用逗号分隔它们的值。
始终获取最大数组的所有值,然后将另一个数组的值连接起来...
可以有3个数组...
答案 0 :(得分:1)
这是数组的笛卡尔积。您可以使用以下代码段。
class Cartesian
{
public static function build($set)
{
if (!$set) {
return array(array());
}
$subset = array_shift($set);
$cartesianSubset = self::build($set);
$result = array();
foreach ($subset as $value) {
foreach ($cartesianSubset as $p) {
array_unshift($p, $value);
$result[] = $p;
}
}
return $result;
}
}
$temp = Cartesian::build($mixed_carriers);
// implode by comma to every subarrays
$temp = array_map(function($item){ return implode(",", $item);}, $temp);
我使用此类来获取cartesian。
Demo。