PHP MySQL 构建一个 3 层多维数组

标签 php mysql arrays multidimensional-array while-loop

所以我有我的查询,它的返回结果正如预期的那样一切都很好,除了今天我的设计师在 Spanner 中通过。这似乎让我有点偏离游戏,也许是因为我太累了,谁知道呢……

我要创建一个 3 层阵列

主要类别、子类别(每个主要类别可以有多个),以及每个子类别的项目列表,可以是 1 到 100 个项目。

我试过 foreach、while、for 循环。通常都以 $final = array(); 开头,然后是下面的循环。

尝试构建如下数组:

$final[$row['primary]][$row['sub']][] = $row['item]
$final[$row['primary]][$row['sub']] = $row['item]

我尝试将它们定义为各自的数组以在其上使用 array_push()。以及其他各种策略,我都失败了。我需要一个头脑清醒的人来帮助我。从哪种类型的循环最适合我的需要到我如何构建我的阵列以按计划构建。

期望的结果是

array(
   primary = array
             (
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
             ),
   primary = array
             (
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
             ),
)

最佳答案

在处理您的请求时会出现这样的情况:

if (!array_key_exists($row['primary'], $final)) {
    $final[$row['primary']] = array();
}
if (!array_key_exists($row['sub'], $final[$row['primary']])) {
    $final[$row['primary']][$row['sub']] = array();
}
$final[$row['primary']][$row['sub']][] = $row['item'];

关于PHP MySQL 构建一个 3 层多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12339574/

相关文章:

php - 如何使用 PHP/IIS 读取 Windows 登录用户名

php - 检查自定义字段

php - 使用 MySQLi 和 PHP 检索过程结果

java - 对角处理二维数组

PHP:一次性将 10.000 行插入 mysql 性能

php - 可视化从Hive数据库到网站页面的数据

java - 尝试将 MySQL 数据库连接到 android 时出现 NullPointerException 错误

PHP:更新查询不更新 TIMESTAMP() 格式列中的时间?

c - 为什么我在 Xcode 中处理字符串时没有遇到错误?

javascript - 如何从node.js中的二维数组中获取随机项