2017-03-09 34 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

まず今
echo $string;
あなたが希望配列

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

を取得し、これを使用して、今昏睡区切りの文字列を与える
$string = implode(",", $old_array);
に、同様
$old_array = array ( "t1,t2", "t3", "t4,t5" );
を文字列にで古い配列に変換しますこれを印刷すると、

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などのマージ関数を呼び出します。

関連する問題