-2

下面给出的是我的代码:

$array=$_POST[number];
$jstring = json_decode($array,true);

$sa = "'".implode("','",$jstring)."'";

错误如下。

Warning: implode() [function.implode]: Invalid arguments passed <root> on line <line no>

Number是一个JSON对象。有人可以帮我吗?请。提前致谢。

编辑: 数字是一个JSON字符串。我需要用逗号分隔。Number 保存来自手机联系人的电话号码。我需要在Sql Query.


问题修复: 我修复了这个问题。与他人分享。

$array = $_POST[number];
$json = (array) json_decode($array,true);

$sa = "'" . implode(',', $json) . "'";
4

3 回答 3

1

如果您在调试时遇到问题,请使用 var_dump 甚至与 gettype() 围绕您尝试内爆的参数结合使用。你永远不需要内爆 JSON 对象,它们被完美地解码。确保您知道 CSV(逗号分隔值)和 JSON 之间的区别。

CSV:

Believe,it,or,not,I,am,CSV

而 JSON:

{"itbetrue":"ibeJSON"}
{"iam":["an","array","in","JSON"]}

如果您尝试获取 JSON 解码数组的值,请像这样使用它:

$csv = implode(',', array_values($json));
于 2013-07-25T09:46:13.690 回答
1

尝试这个:

$json = $_POST['number']; // $json is a json string
$object = json_decode($json, JSON_FORCE_OBJECT); // stdClass => array
echo implode("','", $object); // This works if $object is not multiple array
于 2013-07-25T09:54:36.730 回答
0

在尝试解码之前确保值 $_POST[number] 以 json 格式出现......你可以 var_dump 它并检查

于 2013-07-25T09:49:22.617 回答