【问题标题】:How do I remove some of the square brackets that wrap a JSON array如何删除一些包装 JSON 数组的方括号
【发布时间】:2013-08-28 23:10:08
【问题描述】:

我正在尝试锻炼如何格式化包裹我的 JSON 数组的括号。我正在使用此代码将数组的数据从我的数据库中提取出来。

 $result = mysqli_query($con,"SELECT * FROM table");
 $column = array();
  while ($row = mysqli_fetch_array($result))
  {
   $column[] = array(array($row[0],$row[1],$row[2],$row[3],$row[4],$row[5]),$row[3],$row[2],$row[0]);
  }

一旦转换为 JSON,数组就会以这种格式打印到屏幕上。我需要保留第一个方括号,但需要将第二组括号替换为 (\')。

var myVar = [
[["22","mike"," 151.1272","-33.9324","learning to fish","08\/14\/13"],"-33.93024"," 151.12896172","22"],
[["23","mike"," -2.09875","51.44501","learning french","08\/04\/13"],"51.44501"," -2.09775","23"],
[["24","mike"," -2.16375","51.44823019014051","Programming","08\/05\/13"],"51.451"," -2.1675","24"],
];

所以数组应该看起来更像这样。

var myVar = [
['"22","mike"," 151.12","-33.934","learning to fish","08\/14\/13"',"-33.94"," 151.12","22"],
['"23","mike"," -2.095","51.41","learning french","08\/04\/13"',"51.41"," -2.095","23"],
['"24","mike"," -2.165","51.41","Programming","08\/05\/13"',"51.44851"," -2.1675","24"],
 ];

我需要这种格式的 Array 的原因是我可以将数据传递给 Google Maps 函数,该函数期望 Array 有 4 列。

我已经确定我可以使用这样的函数删除括号,但问题是它删除了所有括号,我需要外部括号;

$js_array = str_replace(array('[', ']'), '\'', htmlspecialchars(json_encode($column), ENT_NOQUOTES));

如何保留外部括号并简单地移除内部括号?如果我没有提供足够的信息或者我应该添加更多详细信息,请告诉我。

谢谢

【问题讨论】:

  • 没有诸如 JSON 数组 n_n 之类的东西,您正在使用数组
  • 顺便说一句,您的第一个示例中的每一行确实包含 4 列。

标签: php arrays json


【解决方案1】:

首先按照您需要的方式制作阵列怎么样?而不是:

$column[] = array(
    array(
        $row[0],
        $row[1],
        $row[2],
        $row[3],
        $row[4],
        $row[5]
    ),
    $row[3],
    $row[2],
    $row[0]
);

这样做:

$column[] = array(
    $row[0] . $row[1] . $row[2] . $row[3] . $row[4] . $row[5],
    $row[3],
    $row[2],
    $row[0]
);

【讨论】:

    【解决方案2】:

    试试

    str_replace('[["','[\'"',$string);
    

    如果括号最后也是双的(不在你的例子中)

    str_replace('"]]','"\']',$string);
    

    【讨论】:

    • 以这种方式破解 json 字符串是不安全/不可取的。
    猜你喜欢
    • 2023-03-08
    • 2013-11-11
    • 2013-04-11
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多