2014-04-11 30 views
0

我試圖分裂以下字符串艱難address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID劈裂字符串和sparate變量存儲在PHP

$a[1] =  address:message:ID 
$a[2] =  address:message:ID 
$a[3] = address:message:ID 
$a[4] = address:message:ID 
$a[5] = address:message:ID 
$a[6] = address:message:ID 

,我再次想拆上面的字符串我試圖在以下

$a[1][1] = address 
$a[1][2] = message 
$a[1][3] = ID 

分裂我如何在不損失代碼執行速度的情況下執行此操作。

回答

2

使用foreach並通過使用|作爲分隔符分解字符串循環,傳遞使用:作爲分隔符的那些分解值到另一個explode()並利用推動它們在一個新的數組$new_arrarray_push

<?php 
$str='address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID'; 
$new_arr=array(); 
foreach(explode('|',$str) as $k=>$v) 
{ 
    array_push($new_arr,explode(':',$v)); 
} 
print_r($new_arr); 

Working Demo

0

做這樣使用Explodeforeach

<?php 
     $str='address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID|address:message:ID'; 
$arr=explode('|',$str); 
foreach($arr as $v){ 
$a[]=explode(':',$v); 
     } 
print_r($a); 

Demo

輸出

Array 
(
    [0] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

    [1] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

    [2] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

    [3] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

    [4] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

    [5] => Array 
     (
      [0] => address 
      [1] => message 
      [2] => ID 
     ) 

)