2014-03-29 93 views
3

首先,我得说我对PHP很新,我试图获得一个可以使用foreach的PHP对象。将jQuery数组字符串转换为PHP数组

以下字符串通过$ .ajax()传递;我试图把下面的字符串:

$menu = "[ 
{"title" : TEST1, "href" : #}, 
{"title" : TEST2, "href" : QWERTY}, 
{"title" : TEST3, "href" : QWERTY, "active" : 1} 
]" 

成和PHP对象,我可以使用foreach循环:

foreach($menu as $li){ 
    echo $li['title']; 
} 

我使用的最佳解决方案,用于创建菜单项或应我正在遵循另一种格式?

非常感谢您提前!

最好的问候, 阿历克斯·G·

回答

6

这是一个JSON格式..它被打破..修正你的JSON数据如图所示,并使用foreach

PHP

<?php 
$menu = '[{"title" : "TEST1", "href" : "#"}, 
{"title" : "TEST2", "href" : "QWERTY"}, 
{"title" : "TEST3", "href" : "QWERTY", "active" : 1}]'; 

foreach(json_decode($menu,true) as $k=>$arr) 
{ 
    echo $arr['title']."<br>"; 
} 

OUTPUT:

TEST1 
TEST2 
TEST3 
+1

我试过json_decode,它不工作。非常感谢,把QUOTES似乎已经修好了。 –

1

尝试json_decode功能

<?php 

     $menu = '[ 
{"title" : TEST1, "href" : #}, 
{"title" : TEST2, "href" : QWERTY}, 
{"title" : TEST3, "href" : QWERTY, "active" : 1} 
]'; 
    $test=json_decode($menu); 
    print_r($test); 
    foreach($test as $ts) 
    { 
     echo $ts['title']; 
     echo "<br>"; 
    } 
?> 
+1

我已经尝试过了,我没有得到任何输出。 –

+1

我应该将TEST1,TEST2等设置为jQuery中的“TEST1”字符串吗? –

+0

@GrozavAlexIoan看看字符串是JSON格式。 –