合并两个用逗号分隔的数组

时间:2019-06-11 07:22:17

标签: php arrays

我有以下两个数组:

    $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个数组...

1 个答案:

答案 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