我有一个所有类别和子类别的数组。我想根据父ID如下面的代码在表中打印它们。这个数组可以有多个子。
Array
(
[0] => stdClass Object
(
[cid] => 1
[cat_type] => 2
[name] => Hardware
[parent] => 0
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 5
[cat_type] => 2
[name] => Printers
[parent] => 1
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 7
[cat_type] => 2
[name] => Inkjet printers
[parent] => 5
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 8
[cat_type] => 2
[name] => Laserjet Printers
[parent] => 5
[subs] => Array
(
)
)
)
)
[1] => stdClass Object
(
[cid] => 6
[cat_type] => 2
[name] => Monitors
[parent] => 1
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 9
[cat_type] => 2
[name] => LCD monitors
[parent] => 6
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 10
[cat_type] => 2
[name] => TFT monitors
[parent] => 6
[subs] => Array
(
)
)
)
)
)
)
[1] => stdClass Object
(
[cid] => 2
[cat_type] => 2
[name] => Software
[parent] => 0
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 11
[cat_type] => 2
[name] => Antivirus
[parent] => 2
[subs] => Array
(
)
)
)
)
[2] => stdClass Object
(
[cid] => 3
[cat_type] => 2
[name] => Movies
[parent] => 0
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 12
[cat_type] => 2
[name] => Action movies
[parent] => 3
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 13
[cat_type] => 2
[name] => Comedy Movies
[parent] => 3
[subs] => Array
(
)
)
[2] => stdClass Object
(
[cid] => 14
[cat_type] => 2
[name] => Romantic movie
[parent] => 3
[subs] => Array
(
)
)
[3] => stdClass Object
(
[cid] => 15
[cat_type] => 2
[name] => Thriller Movies
[parent] => 3
[subs] => Array
(
)
)
)
)
[3] => stdClass Object
(
[cid] => 4
[cat_type] => 2
[name] => Clothes
[parent] => 0
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 16
[cat_type] => 2
[name] => Mens
[parent] => 4
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 18
[cat_type] => 2
[name] => Shirts
[parent] => 16
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 19
[cat_type] => 2
[name] => T-shirts
[parent] => 16
[subs] => Array
(
)
)
[2] => stdClass Object
(
[cid] => 20
[cat_type] => 2
[name] => Shirts
[parent] => 16
[subs] => Array
(
)
)
[3] => stdClass Object
(
[cid] => 21
[cat_type] => 2
[name] => Jeans
[parent] => 16
[subs] => Array
(
)
)
[4] => stdClass Object
(
[cid] => 22
[cat_type] => 2
[name] => Accessories
[parent] => 16
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 28
[cat_type] => 2
[name] => Watches
[parent] => 22
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 29
[cat_type] => 2
[name] => Tie
[parent] => 22
[subs] => Array
(
)
)
[2] => stdClass Object
(
[cid] => 30
[cat_type] => 2
[name] => cufflinks
[parent] => 22
[subs] => Array
(
)
)
)
)
)
)
[1] => stdClass Object
(
[cid] => 17
[cat_type] => 2
[name] => Womens
[parent] => 4
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 23
[cat_type] => 2
[name] => Tees
[parent] => 17
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 24
[cat_type] => 2
[name] => Skirts
[parent] => 17
[subs] => Array
(
)
)
[2] => stdClass Object
(
[cid] => 25
[cat_type] => 2
[name] => Leggins
[parent] => 17
[subs] => Array
(
)
)
[3] => stdClass Object
(
[cid] => 26
[cat_type] => 2
[name] => Jeans
[parent] => 17
[subs] => Array
(
)
)
[4] => stdClass Object
(
[cid] => 27
[cat_type] => 2
[name] => Accessories
[parent] => 17
[subs] => Array
(
[0] => stdClass Object
(
[cid] => 31
[cat_type] => 2
[name] => Earrings
[parent] => 27
[subs] => Array
(
)
)
[1] => stdClass Object
(
[cid] => 32
[cat_type] => 2
[name] => Bracelets
[parent] => 27
[subs] => Array
(
)
)
[2] => stdClass Object
(
[cid] => 33
[cat_type] => 2
[name] => Necklaces
[parent] => 27
[subs] => Array
(
)
)
[3] => stdClass Object
(
[cid] => 34
[cat_type] => 2
[name] => Pendants
[parent] => 27
[subs] => Array
(
)
)
)
)
)
)
)
)
)
<table class="table">
<tbody>
<tr>
<td>1</td>
<td>Hardware</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Printers</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- -Inkjet printers</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Laserjet Printers</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Monitors</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - LCD monitors</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - TFT monitors</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td>2</td>
<td>Software</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Antivirus</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td>3</td>
<td>Movies</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Action movies</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Comedy Movies</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Romantic movie</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Thriller Movies</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td>4</td>
<td>Clothes</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Mens</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Shirts</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - T-shirts</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Shirts</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Jeans</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Accessories</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Watches</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Tie</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - cufflinks</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- Womens</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Tees</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Skirts</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Leggins</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Jeans</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - Accessories</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Earrings</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Bracelets</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Necklaces</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>- - - Pendants</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
请试试这个:
<?php
function printTable($arr) {
$count = count($arr);
for($i = 0; $i < $count; $i++) {
echo '<tr>
<td>', $arr[$i]['cid'], '</td>
<td>', $arr[$i]['name'], '</td>
<td><label><input type="checkbox" value="" /></label></td>
<td> </td>
</tr>';
if(isset($arr[$i]['subs'])) {
printTable($arr[$i]['subs']);
}
}
}
$arr = array(
array(
'cid' => 1,
'name' => 'Hardware',
'subs' => array(
array(
'cid' => 3,
'name' => 'Printer',
)
)
),
array(
'cid' => 2,
'name' => 'Software',
'subs' => array(
array(
'cid' => 4,
'name' => 'CRM',
)
)
)
);
echo '<table>';
printTable($arr);
echo '</table>';
&GT;
由于您有子阵列parent
,因此您不需要subs
。
我希望它会给出一些线索!