【问题标题】:Remove double quotes in array in php?在php中删除数组中的双引号?
【发布时间】:2014-09-10 06:00:45
【问题描述】:

php代码:

 foreach($location_total_n_4 as $u=> $v)
{ 

 $final_location_total_4 .= "[".$u.",".$v."],";
}  

我以 json 格式发送这些值。

echo json_encode(array(         
"location"=>"$final_location_total_4"
));

结果是:

  {"location":"[1407110400000,6641],[1407196800000,1566],[1407283200000,3614],[1407369600000,3654],[1407456000000,2918],[1407715200000,3900],[1407715200000,3900],"}

其实我想要这个值如下:

 {"location":[1407110400000,6641],[1407196800000,1566],[1407283200000,3614],[1407369600000,3654],[1407456000000,2918],[1407715200000,3900],[1407715200000,3900]}

【问题讨论】:

  • 你有引号,因为那是一个字符串。为什么不直接在 HTML 中回显(作为 javascript)?
  • 除非你在其他地方加上引号,否则上面的代码似乎没有在你的值周围加上任何额外的引号。一个简单的回声不应该在它周围添加那些引号
  • 好的,你们俩都是对的。但是我在 json 中发送这些值。所以它会产生问题。

标签: php arrays json


【解决方案1】:
   foreach($location_total_n_4 as $u=> $v)
    { 

     $final_location_total_4 .= "[".$u.",".$v."],";
    }
    $final_value =  json_encode(array(         
    "location"=> rtrim($final_location_total_4,',')
    ));

    echo str_replace(']"',']',str_replace('"[',"[",$final_value));

这会给你想要的结果

【讨论】:

【解决方案2】:

您没有返回数组或对象。您正在返回一个字符串,所以它必须用引号括起来

$final_location_total_4 .= "[".$u.",".$v."],";

您实际上是在创建一个字符串"[4,5],[1,2]"。 如果您想要一个对象或数组,请执行以下操作:

$final_location_total_4 = array();
foreach($location_total_n_4 as $u=> $v)
{ 
   $final_location_total_4[] = $u.",".$v;
} 

{"location":[1407110400000,6641],[140 完全无效。除了在字符串内,您不能在其他任何地方使用逗号分隔方括号。您应该得到如下结果:{"location":{[1407110400000,6641],[140...}

【讨论】:

  • 已经添加到php文件头('Content-Type: application/json');
  • 不需要添加 dataType: "json",因为我只是将用户的名称发送到 php 文件。从带有名称的 php 文件中获取数据。
  • 发现了一个逻辑错误,因此一并更改了答案。请查看
  • 我正在创建图表,所以我需要这样的值 d1=[response.location]; d1=[[1407110400000, 6641], [1407196800000, 1566], [1407283200000, 3614], [1407369600000, 3654], [1407456000000, 2918], [0407710]2000];09;09
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多