Php构建数组来自逗号分隔的数组值

时间:2017-03-09 05:51:24

标签: php arrays explode

我有一个数组,其中一些数组值包含用逗号分隔的多个值,如下所示。



    $a  =  array(
              '0' => 't1,t2',
              '1' => 't3',
              '2' => 't4,t5'
           );   

我需要以下列格式输出。


   Array
    (
        [0] => t1
        [1] => t2
        [2] => t3
        [3] => t4
        [4] => t5
    )



这是尝试和获得结果的方式。没有循环两次是否还有其他替代方法。


    $arr_output = array();

    foreach($a as $val)
    {
        $temp = explode(',', $val);
        foreach($temp as $v)
        {
            $arr_output[] = $v;
        }
    }

感谢。

2 个答案:

答案 0 :(得分:1)

$array = Array (
        "t1,t2",
        "t3",
        "t4,t5"
    );

$splitted = array_map (function ($a) {return explode (",", $a);}, $array);
$arr = array_reduce($splitted, function ($a, $b) {
     return array_merge($a, (array) $b);
}, []);    

print_r ($arr);

首先,你用昏迷分割每个字符串。你得到一个数组数组。 要合并它们,可以调用合并函数,例如带有array_reduce的示例中的函数。

答案 1 :(得分:1)

首先将旧数组转换为字符串,如 $old_array = array ( "t1,t2", "t3", "t4,t5" );

$string = implode(",", $old_array);
现在
echo $string;
给了一个带昏迷分隔符的字符串,现在使用这个你想要的数组

$new_array = explode(",", $string);

如果你打印这个,你会得到

Array(
[0] => t1
[1] => t2
[2] => t3
[3] => t4
[4] => t5)