Php 如何处理这个问题?

Php 如何处理这个问题?,php,javascript,ajax,Php,Javascript,Ajax,我有以下代码: $wage = array(); foreach ($result3 as $row3) { $wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']'; } if ($userid == 0 ) { $age= ""; } else { $age = implode(',', $wage).","; } echo json_encode("var2"=>$myvar

我有以下代码:

$wage = array();
foreach ($result3 as $row3) {
  $wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']';
}
if ($userid == 0 ) {
  $age= "";
} else {
  $age = implode(',', $wage).",";
}
 echo json_encode("var2"=>$myvar ,"var3"=>$age));  // i didnt write var2 because is same as var3
上面的输出类似于
[4,2.3][5,6],[1.7,5],

在javascript中,我通过名为
var3
的ajax接收上面输出的值

dataType: 'json' ,
success: function(response){
var age = response['var3'] ; 
.....
所以问题是我怎样才能
parseFloat
这个变量
age

编辑。 如果我像那样提醒json

   alert (response);
我得到
[object object]
//注意小o和大o

编辑2。 旧控制台日志

我明白了

  {"var2":"[2,5],[3.5,5],[6.5,6.5],[8,7],","var3":"[2,46],[3.5,61],[6.5,70],[8,71],","var4":"[2,32],[3.5,41],[6.5,42],[8,43],","var5":"[46,5],[61,5],[70,6.5],[71,7],"}

这返回了我想要解析的值,就像你看到的,它们就像两个引号之间的字符串一样,你完全弄错了。你不需要这样做

foreach ($result3 as $row3) {
  $wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']';
}
也许你想要的是

foreach ($result3 as $i => $row3) {
  $newRow = $row3;
  $newRow['age'] = intval($row3['age']);
  $newRow['point'] = floatval($row3['point']);
  $result3[$i] = $newRow;
}
然后这样做

// Create JSON data, assuming that $result3 is an array
$jsonData = json_encode($result3);

// This will give you a JSON string, output this and finish to ensure it IS the only thing output
echo $jsonData;
die;
现在在javascript中,在您使用的浏览器中打开开发控制台,并在javascript中使用以下代码

console.log(response)
这将把整个
响应
变量输出到控制台,并使您能够调试如何从
响应
变量中获取特定数据


希望这能有所帮助。

你完全弄错了。你不需要这样做

foreach ($result3 as $row3) {
  $wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']';
}
也许你想要的是

foreach ($result3 as $i => $row3) {
  $newRow = $row3;
  $newRow['age'] = intval($row3['age']);
  $newRow['point'] = floatval($row3['point']);
  $result3[$i] = $newRow;
}
然后这样做

// Create JSON data, assuming that $result3 is an array
$jsonData = json_encode($result3);

// This will give you a JSON string, output this and finish to ensure it IS the only thing output
echo $jsonData;
die;
现在在javascript中,在您使用的浏览器中打开开发控制台,并在javascript中使用以下代码

console.log(response)
这将把整个
响应
变量输出到控制台,并使您能够调试如何从
响应
变量中获取特定数据

希望有帮助。

这是不正确的:

$wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']';
您正在构建一个字符串,它碰巧看起来像javascript数组定义,但它仍然只是一个字符串。当它被json_编码时,它将显示为

"[...,...]"
^--       ^-- string
在PHP中,您需要在所有阶段构建本机数据结构,例如:

$wage[] = array(floatval($row3['age']), floatval($row3['point']));
而不是本机字符串和“类似json”字符串的混搭。json_encode()转换等价Javascript类型的本机数据类型。由于您自己的floatval业务正在生成一个字符串,因此您将得到一个json编码的字符串,而不是数组。

这是不正确的:

$wage[] = '[' . floatval($row3['age']) . ',' . floatval($row3['point']) .']';
您正在构建一个字符串,它碰巧看起来像javascript数组定义,但它仍然只是一个字符串。当它被json_编码时,它将显示为

"[...,...]"
^--       ^-- string
在PHP中,您需要在所有阶段构建本机数据结构,例如:

$wage[] = array(floatval($row3['age']), floatval($row3['point']));

而不是本机字符串和“类似json”字符串的混搭。json_encode()转换等价Javascript类型的本机数据类型。由于您自己的floatval业务正在生成一个字符串,因此您将获得一个json编码的字符串,而不是数组。

您应该使用json(
json_encode()
)而不是手动构建JS代码。im使用json编码我将在发布后编辑您获得的确切json输出。您应该使用
json_encode()
,警报不仅是最后一步,而且对对象的帮助不会像
console.log
那样有用。尝试将其记录到控制台并点击F12(在FF和chrome中)查看您获得的日志消息您应该使用JSON(
JSON_encode()
)而不是手动构建JS code.im使用JSON encode我将编辑我的后期发布,以获得确切的JSON输出。您应该使用
JSON_encode()
,不仅仅是最后一步。警报对对象的帮助不如
console.log
那么大。尝试将其记录到控制台并点击F12(在FF和chrome中)查看您得到的日志消息使用了您的建议,我在控制台中得到了这个消息,{code>{var2:“Array,Array,Array,”,“var3:“[2,46],[3.5,61],[8,71],“var4:[2,32],[3.5,41],[8,43],“var5:[46,5],[61,5],[71,7],”当您看到它的数组时,因为您正在多维数组上执行
内爆()。内爆对额外维度不起作用,所以!那么,什么将取代内爆呢?为了生成这个结果,我使用了您的建议,在控制台中得到了这个结果,
{var2:“Array,Array,Array,”,“var3:“[2,46],[3.5,61],[8,71],“var4:”[2,32],[3.5,41],[8,43],“var5:[46,5],[61,5],[71,7],“}
正如您看到它的数组数组一样,因为您正在多维数组上执行
内爆()。内爆对额外维度不起作用,所以!那么,什么将取代内爆呢?为了构建这个结果,stringu说它将给我JSON字符串,但我的问题是获取解析为浮动的返回值,而不是stringu说它将给我JSON字符串,但我的问题是获取解析为浮动的返回值,而不是字符串