簡體   English   中英

如何刪除一些包裹JSON數組的方括號

[英]How do I remove some of the square brackets that wrap a JSON array

我正在嘗試鍛煉如何格式化包裹我的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"],
];

因此,Array應該看起來更像這樣。

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));

我如何保留外部支架並簡單地卸下內部支架? 如果我沒有提供足夠的信息,或者我應該添加更多詳細信息,請告訴我。

謝謝

首先如何按照需要的方式制作數組? 代替:

$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]
);

嘗試

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

以及如果括號在末尾也加倍(不在您的示例中)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM