当我编码从mysql数据库获取的json数据时,我得到了:
[{"userid":"11","postid":"12"},{"userid":"13","postid":"12"},{"userid":"16","postid":"12"}]
我正在尝试仅获取这样的用户ID:11, 13, 16
。
解码json数据后,输出为Array
。没别的。当我var_dump
时,这是我的结果:
array(3) {
[0]=> array(2) {
["userid"]=> string(2) "11"
["postid"]=> string(2) "12"
}
[1]=> array(2) {
["userid"]=> string(2) "13"
["postid"]=> string(2) "12"
}
[2]=> array(2) {
["userid"]=> string(2) "16"
["postid"]=> string(2) "12"
}
所以我知道这里有数据,只是出于某种原因而没有显示。
这是我的查询内容:
if(isset($_POST['postuserid'])){
$uid = $_POST['postuserid'];
$ssql = "SELECT * FROM foodid WHERE postid=$uid";
$rresult = mysqli_query($db,$ssql);
while ($lrow = mysqli_fetch_assoc($rresult)){
$ret[] = $lrow;
$postjson = json_encode($ret);
$decode_postid = json_decode($postjson, true);
$new_postid = $decode_postid;
}
var_dump($new_postid);
die($new_postid);
// die($new_postid['userid']); is what I need along with all data userid fetched.
}
在对json数据进行编码时有这种方法起作用,而在对json数据进行解码时有这种原因吗?
答案 0 :(得分:1)
尝试映射这些结果:
$db= @("list of databases")
输出
array(3){ [0] => 字符串(2)“ 11” 1 => 字符串(2)“ 13” [2] => 字符串(2)“ 16” }
如果需要输出为字符串,只需使用implode函数
$new_postid = $decode_postid;
$new_postid = array_map(function($item){
return $item['userid'];
}, $new_postid);
var_dump($new_postid);
答案 1 :(得分:1)
您是否要使该数组脱离die函数?它只能接受字符串或整数。
http://php.net/manual/en/function.exit.php
您的数组在那里...只需执行以下操作:
$ids = '';
foreach ($new_postid as $post) {
$ids .= $post['userid'] . ',';
}
$ids = rtrim($ids,',');
die($ids);