Php 从嵌套数组中检索结果
我不明白如何得出结果。我一直在用这些回音语句获取数组。谢谢Php 从嵌套数组中检索结果,php,arrays,foreach,Php,Arrays,Foreach,我不明白如何得出结果。我一直在用这些回音语句获取数组。谢谢 $qry = "SELECT * FROM `users` WHERE installation_id = $installation_id"; $res = mysqli_query($mysqli, $qry) or die('-1'.mysqli_error($mysqli)); $categories = array(); while ($row_rsCategories = mysqli_fetch_assoc($res)
$qry = "SELECT * FROM `users` WHERE installation_id = $installation_id";
$res = mysqli_query($mysqli, $qry) or die('-1'.mysqli_error($mysqli));
$categories = array();
while ($row_rsCategories = mysqli_fetch_assoc($res)) {
$product_array = array();
$product_array_query = mysqli_query($mysqli,"SELECT id, user_id, client_id, comments, stars FROM reviews WHERE user_id = '".$row_rsCategories['userId']."'");
while($product_array_fetch = mysqli_fetch_array($product_array_query)) {
$product_array[] = array(
"id" => $product_array_fetch['user_id'],
"name" => $product_array_fetch['comments']
);
}
$categories[] = array(
'id' => $row_rsCategories['userId'],
'name' => $row_rsCategories['userName'],
'products' => $product_array,
);
}
foreach ($categories as $category) {
echo $category['name'];
echo $category['products'];
}
更新:
我在调用usersName时发现一个错误。现在它把两个用户名一起打印出来
类别数组是:
Array
(
[id] => 63
[name] => Paul Rothlisberger
[products] => Array
(
)
)
打印该数组是因为它是数组$category['products']的字符串表示形式。要在逗号分隔的列表中打印每个产品的所有信息,请使用:
foreach($category['products'] as $product) {
echo implode(",", $product);
}
换句话说,您必须迭代数组中的每个元素,直到最内层数组中的单个值
更新:忽略了一个事实,即您的产品也是阵列。已更新解决方案。echoarray将显示阵列。尝试打印或变量转储;如果你尝试打印r$类别,你会得到什么?@andy用信息更新了问题谢谢你的帮助。尽管如此,我仍然得到了Lauren Array和ArrayPaul这两个用户,第一个是唯一一个拥有产品的用户。我需要分别打印这些用户。更新了答案。很抱歉,我错过了额外的数组,因为问题中的'Paul'示例不包含其他数组。非常有帮助。非常感谢。