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'示例不包含其他数组。非常有帮助。非常感谢。