2017-03-09 110 views
1

我有一个数组的值包含多个值,用逗号分隔,如下所示。从逗号分隔数组值的PHP构建数组

 


    $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; 
     } 
    } 

感谢。

+0

发布您的代码以及您尝试过的? –

+0

@orangetime不需要在这里使用循环,你可以通过使用预定义的PHP数组函数获得所需的输出。在下面检查我的答案。 – prudhvi259

+0

@ prudhvi259,非常感谢。你的解决方案非常简单。 – orangetime

回答

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) 
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的示例中的合并函数。

相关问题