2014-05-12 102 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 
       ) 

     ) 

) 

它可能无法为包含任何然而[] {}() ,项目工作。

相关问题