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

Posted

技术标签:

【中文标题】将 jQuery 数组字符串转换为 PHP 数组【英文标题】:Convert jQuery Array string to PHP Array 【发布时间】:2014-05-08 23:40:52 【问题描述】:

首先,我得说我对 php 还很陌生,我正在尝试获取一个可以在其上使用 foreach 的 PHP 对象。

下面的字符串通过 $.ajax();我正在尝试打开以下字符串:

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

我可以在其上使用 foreach 循环的 into 和 php 对象:

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

我是在使用最佳解决方案来创建菜单项还是应该采用另一种格式?

非常感谢您!

最好的问候, 亚历克斯 G.

【问题讨论】:

【参考方案1】:

这是一种 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

【讨论】:

我已经尝试过 json_decode 但它不起作用。非常感谢,加上引号似乎已经解决了。【参考方案2】:

试试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>";
    
 ?>

【讨论】:

我应该将 TEST1、TEST2 等设置为 jquery 中的“TEST1”字符串吗? @GrozavAlexIoan 看看那个字符串是 JSON 格式的。 你使用了没有字符转义的双引号 @Let'sCode :- 嘿,那个字符串坏了。参考Shankar Damodaran's answer

以上是关于将 jQuery 数组字符串转换为 PHP 数组的主要内容,如果未能解决你的问题,请参考以下文章

将 PHP 数组转换为 JQuery 数据

AJAX - 将返回的八位字节流转换为类型化数组 (Float64Array)

将 PHP 文件树数组转换为相对路径数组

如何使用 jquery 将序列化的字符串转换为数组

php中有没有将数组的值转换为字符串的函数

将 PHP 转换为 JavaScript。将键/值存储到数组中