所以我有我的查询,它的返回结果正如所期望的那样都是膨胀,除了今天我的设计师通过扳手。这似乎有点让我失去了我的游戏,也许是因为我很累,谁知道,无论如何..
我要创建一个3层数组
主要类别,子类别(每个主要类型可以有倍数),以及每个子类别的项目列表,可以是1到100个项目。
我试过foreach,而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
),
),
)
答案 0 :(得分:2)
像这样......
$final =
array(
'Primary1'=>array(
'Sub1'=>array("Item1", "Item2"),
'Sub2'=>array("Item3", "Item4")
),
'Primary2'=>array(
'Sub3'=>array("Item5", "Item6"),
'Sub4'=>array("Item7", "Item8")
),
);
你可以使用array_push
来做到这一点,但这并不容易,因为你真的想要一个关联数组,而array_push不能很好地使用键。您当然可以使用它来向子元素添加项目
array_push($final['Primary1']['Sub1'], "Some New Item");
答案 1 :(得分:2)
在处理您的请求期间有类似的事情:
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'];
答案 2 :(得分:0)
如果我理解正确,您希望将几个db关系提取到PHP数组中。
这是一些示例代码,您可以如何解决这个问题:
<?php
$output = array();
$i = 0;
// DB Query
while($categories) { // $categories is an db result
$output[$i] = $categories;
$ii = 0;
// DB Query
while($subcategories) { // $subcategories is an db result
$output[$i]['subcategories'][$ii] = $subcategories;
$iii = 0;
// DB Query
while($items) { // $items is an db result
$output[$i]['subcategories'][$ii]['items'][$iii] = $items;
$iii++;
}
$ii++;
}
$i++;
}
print_r($output);
?>