解码JSON帖子数据

时间:2016-09-24 05:57:08

标签: php json

我的php文件收到来自ajax调用的帖子。 php文件收到的字符串如下:

  

array(1){[" userid"] => string(21)" assssssss,camo,castor" }

我尝试解码此字符串然后循环遍历数组中的值,但未成功。我尝试过以下方法:

$myarray =json_decode($_POST["userid"],true); 
foreach ($myarray as $value) {
   //do something with value
} 

我不确定解码是循环PHP数组的问题还是我的语法。

3 个答案:

答案 0 :(得分:1)

您要操作的POST数据存储在$_POST['userid]

如果您尝试访问此逗号分隔的用户ID,则需要先使用explode()将其转换为数组。然后循环遍历这些id。

if (isset($_POST)) {

   $user_ids = $_POST['userid'];  // assssssss,camo,castor

   $user_id_arr = explode(',', $user_ids);  // Converts string to array Array (0 => assssssss, 1 => camo, 2 => castor)

   foreach ($user_id_arr as $user_id) {
       //Statements
   } 
}

答案 1 :(得分:0)

$ _ POST是在使用application / x-www-form-urlencoded或multipart / form-data作为请求中的HTTP Content-Type时,通过HTTP POST方法传递给当前脚本的关联变量数组。因此,当您使用json_decode进行解码时,会将JSON字符串解码为Object / Array。

但是在您的场景中,您还没有将JSON字符串传递给$ _POST,因此它看起来不会解码。

答案 2 :(得分:0)

您传递到$ _POST的字符串不是JSON,因此json_decode不会对某些随机逗号分隔值起作用。

您可以传入真正的JSON,也可以只使用分割这些值的爆炸方法:

// explode example
$users  = "assssssss,camo,castor";
$usersarray = explode(",", $users);