嘿我已经设法解码我创建的编码json但是当我尝试打印解码的数组时,它会一遍又一遍地重复相同的用户名(列表中的最后一个)。我想要的是所有用户都被展示
这是编码的json数组的代码
$query =
"SELECT
userid,
username,
password,
email
FROM Users ORDER BY userid";
$results = mysqli_query($connection,$query);
下面的编码数组代码
<?php
echo "Data with Json Encoding";
foreach($results as $row){
$encode = json_encode($row, true);
echo '<pre>';print_r($encode); echo '</pre>';
}
?>
下面的解码数组代码
<?php
echo "Data with Json Decoding";
foreach($results as $row){
$decode = json_decode($encode, true);
echo '<pre>'; print_r($decode);'</pre>';
}
这是代码Data with Json Decoding
的结果Array
(
[userid] => 239
[username] => desposit4221
[password] => 699e5fae54df4c82314e42dd86c4d383
[email] => ad471993@hotmail.com
)
Array
(
[userid] => 239
[username] => desposit4221
[password] => 699e5fae54df4c82314e42dd86c4d383
[email] => ad471993@hotmail.com
)
这是一遍又一遍,它应该是我的用户列表
任何帮助将不胜感激
答案 0 :(得分:0)
echo "Data with Json Encoding";
$encodedResults = array();
foreach($results as $row){
$encode = json_encode($row, true);
echo '<pre>';print_r($encode); echo '</pre>';
$encodedResults[] = $encode;
}
?>
echo "Data with Json Decoding";
foreach($encodedResults as $row){
$decode = json_decode($row, true);
echo '<pre>'; print_r($decode);'</pre>';
}
答案 1 :(得分:0)
如果你放行
$encode = json_encode($row, true);
在foreach
行之后的第二个循环中,您应该得到您期望的结果。这是探索php的数据管理方面的合理方法。祝你的项目好运!
答案 2 :(得分:0)
对您的阵列进行编码:
echo "Data with Json Encoding";
$encoded_datas = json_encode($results);
echo $encoded_datas;
将字符串解码为数组:
echo "Data with Json Decoding";
$decoded_datas = json_decode($encoded_datas, true);
echo '<pre>';
print_r($decoded_datas);
echo '</pre>';
您不需要逐行编码(然后解码)数组。
另外,正如评论中所解释的那样,并且如 costa 的回答所示,您的代码无效,因为您每次都在解码相同的字符串:您的$encoded
变量包含最后一个值放入(你编码的最后一行)。