我有这两个数组:
$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个数组...
这是数组的笛卡尔积。您可以使用以下代码段。
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);
我用这个类来获得笛卡尔。
演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句