2014-05-12 104 views
0

的功能被以兩個參數作爲func($t,$stringt){}將字符串轉換爲可使用的JSON字符串或數組對象

其中$ t是整數且$stringt是任意字符串,的$stringt的格式如下

for $t = 1; 
$stringt = '({A,B,C,D,E,F},{(A,B),(B,C),(C,A),(E,D),(D,A),(F,A)})'; 
//or it can be 
$stringt = '({A,B,C,D,E,F},{(A,B),(B,C),(C,A),(D,A),(B,A),(A,E),(F,A)})'; 
for $t = 2; 
    $stringt = '({A,B,C},{(A,B),(B,C),(C,A)}),({A,B,C,D,E},{(A,B),(B,C),(C,A),(D,A),(E,D),(A,E),(E,C),(D,B)})'; 

我怎麼可以這樣簡單的字符串轉換成任何可用的JSON字符串

這樣說

$json = '[ 

         [ 
          [ 
           "A", "B", "C" 
          ], 
          [ 
           [ 
            "A" , "B" 
           ], 
           [ 
            "B","C" 
           ], 
           [ 
            "C","A" 
           ] 
          ] 
         ], 
         [ 
          [ 
           "A", "B", "C", "D", "E" 
          ], 
          [ 
           [ 
            "A","B" 
           ], 
           [ 
            "B","C" 
           ], 
           [ 
            "C","A" 
           ], 
           [ 
            "D","A" 
           ], 
           [ 
            "E","D" 
           ], 
           [ 
            "A","E" 
           ], 
           [ 
            "E","C" 
           ], 
           [ 
            "D","B" 
           ] 
          ] 

         ] 
     ]'; 

有了這個我可以接近所需的結果。 輸出我期待是一樣的東西

所有組合元素用於第二組

$array_a = array(array('A','B'),array('C','A'),array('D','A'),array('A','E')); 
var_dump($array_a); 
echo count($array_a); 

同樣,對於所有的值對。

是否有任何其他的方式來處理給定的輸入字符串,比如說找到A(或其他)在第一集中然後在第二集和任何第n集中的所有值。

+0

1.獲取有效的JSON字符串,2.使用'json_decode()'。 3.獲取一個數組/對象。 4.做任何事。 –

+0

該字符串只能以這種格式..這就是我期待有一個選項 – atjoshi

回答

1

如果你是肯定的格式,這個工作對我來說:

$json = '({A,B,C,D,E,F},{(A,B),(B,C),(C,A),(E,D),(D,A),(F,A)})'; 

$json = preg_replace('/([^\(\)\{\}\[\],]+)/', '"$1"', $json); 
$json = preg_replace('/[\{\(]/', '[', $json); 
$json = preg_replace('/[\}\)]/', ']', $json); 

$array = json_decode($json, true); 

echo '<pre>'; 

print_r($array); 

結果:

Array 
(
    [0] => Array 
     (
      [0] => A 
      [1] => B 
      [2] => C 
      [3] => D 
      [4] => E 
      [5] => F 
     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [0] => A 
        [1] => B 
       ) 

      [1] => Array 
       (
        [0] => B 
        [1] => C 
       ) 

      [2] => Array 
       (
        [0] => C 
        [1] => A 
       ) 

      [3] => Array 
       (
        [0] => E 
        [1] => D 
       ) 

      [4] => Array 
       (
        [0] => D 
        [1] => A 
       ) 

      [5] => Array 
       (
        [0] => F 
        [1] => A 
       ) 

     ) 

) 

它可能無法爲包含任何然而[] {}() ,項目工作。

相關問題