我的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数组的问题还是我的语法。
答案 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);