带有int索引的json_encode数组

时间:2013-06-27 14:55:51

标签: php arrays json

我需要编码一个类似的数组:

Array
(
    [0] => 393922111111
    [1] => 393433333333
    [2] => 393555555555
)

使用json_encode。

我得到了这个:

["393922111111","393433333333","393555555555"]

这似乎不正确。 即我把它放进了

 echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
     echo json_encode($destinatariSMS);
 echo '" />'.PHP_EOL;

并且在下一页中只会收到第一个括号。

你能给我一些暗示吗?谢谢!

2 个答案:

答案 0 :(得分:2)

在将输入作为INPUT值之前,没有正确地转义编码的json会导致基本错误。某些字符(包括")需要引用(" =&gt; &quot;)才能“使用”HTML。所以有效的代码应该是:

echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
echo htmlspecialchars(json_encode($destinatariSMS));
echo '" />'.PHP_EOL;

答案 1 :(得分:0)

输出为html时,应使用htmlspecialchars对输出进行编码,使其无法破坏html:

 echo '<input type="hidden" id="destinatariSMS" name="destinatariSMS" value="';
     echo htmlspecialchars(json_encode($destinatariSMS));
 echo '" />'.PHP_EOL;

在您的情况下,json中的引号会关闭value属性。