将jQuery数组字符串转换为PHP数组

3

首先,我必须说我对PHP还比较陌生,我正在尝试获取一个可使用foreach的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'];
}

我是否正在使用最佳方案来创建菜单项,还是应该遵循其他格式?
非常感谢您的提前体谅!
最好的问候, Alex G.
2个回答

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>";
}

输出:

TEST1
TEST2
TEST3

1
我已经尝试过json_decode,但它没能正常工作。非常感谢,加上引号似乎解决了这个问题。 - Grozav Alex Ioan

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
我应该将TEST1、TEST2等设置为jquery中的"TEST1"字符串吗? - Grozav Alex Ioan
@GrozavAlexIoan 看看这个字符串是不是JSON格式。 - user3427568
您在未进行字符转义的情况下使用了双引号。 - Sanoob
1
@Let'sCode:- 嘿,那个字符串坏了。请参考Shankar Damodaran的答案 - Akshay Paghdar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接