json_encode返回PHP数组

时间:2014-08-11 14:25:16

标签: php json

所以我正在使用PHP将一个PHP数组通过jQuery Ajax请求传递给另一个PHP页面。这是一项艰巨的任务。出于某种原因,我的json_encode返回一个数组而不是一个字符串,我不太清楚为什么。这是我的PHP代码:

$new_spreadsheet = nl2br($_POST['spreadsheet']);
$new_spreadsheet = explode('<br />', $new_spreadsheet);
array_shift($new_spreadsheet);
$new_spreadsheet = array_values($new_spreadsheet);
echo json_encode($new_spreadsheet);

我会告诉你输出,但它真的很长。基本上这是输出一个PHP数组,它由电子表格中的每一行组成。这就是我想要的,但问题是我不想要数组中的引号和所有内容。我很确定我需要运行json_decode,但是当我这样做时,我的代码返回一个错误,说参数需要是一个字符串。我可以说一些事情是对的,但我不太确定我需要改变什么。我很感激任何建议。

更新:此时,当我尝试循环遍历数组并打印每个值时,第一个数组索引等于双引号,如下所示:&#34;。整个区域的随机值都有双引号。我不太确定导致这种情况的原因。

如果我将json_encoded PHP数组中的行回显到控制台,我会得到以下输出:

"
correct value
correct value
correct value
"

2 个答案:

答案 0 :(得分:0)

您正在使用JSON,这意味着您必须遵守比Javascript更严格的语法规则。 e.g。

<?php

$arr = array('This' => 'is', 'an' => 'array in php');
echo json_encode($array);

?>

输出:

{"This":"is","an":"array in PHP"}

NO 方法可以避免获取值的引用,因为它们是JSON(和Javascript)的基本要求。如果您不想报价,请不要使用JSON。

答案 1 :(得分:-2)

只尝试br。

$new_spreadsheet = explode("<br>", $new_spreadsheet);

它会起作用。并且json_enode永远不会返回数组。尝试var_dump和check.Also确保在发布之前,使用htmlspecialcharacters。

相关问题