我在遇到以下情況時遇到困難,我有一個帶有類別的數組,因此類別可以具有子類別,並且子類別可以無限地具有子類別。現在我想要實現的是以下內容,但我無法實現這一點。使用表格構建層次結構 - PHP
我有一個數組$items
在下面的結構
Array
(
[0] => Array
(
[label] => Main Cat
[id] => 29
[parent_id] => 19
)
[1] => Array
(
[label] => Main Cat
[id] => 17
[parent_id] => 19
)
[2] => Array
(
[label] => Main Cat
[id] => 20
[parent_id] => 19
[items] => Array
(
[0] => Array
(
[label] => Child Level 1
[id] => 21
[parent_id] => 20
)
[1] => Array
(
[label] => Child Level 1
[id] => 22
[parent_id] => 20
[items] => Array
(
[0] => Array
(
[label] => Child Level 2
[id] => 27
[parent_id] => 22
[items] => Array
(
[0] => Array
(
[label] => Child Level 3
[id] => 28
[parent_id] => 27
)
)
)
)
)
[2] => Array
(
[label] => Child Level 1
[id] => 23
[parent_id] => 20
)
[3] => Array
(
[label] => Child Level 1
[id] => 24
[parent_id] => 20
[items] => Array
(
[0] => Array
(
[label] => Child Level 2
[id] => 25
[parent_id] => 24
)
[1] => Array
(
[label] => Child Level 2
[id] => 26
[parent_id] => 24
)
)
)
)
)
)
現在我想下面的數組在每個孩子的水平縮進顯示錶,如果它應該去一個級別的子級別3兒童2級的降位應該再次改變。
例
<table border="2" width="100%">
<tr>
<td>Main Cat</td>
</tr>
<tr>
<td>Main Cat</td>
</tr>
<tr>
<td>Main Cat</td>
</tr>
<tr>
<td style="margin-left:20px;">Child Level 1</td>
</tr>
<tr>
<td style="margin-left:20px;">Child Level 1</td>
</tr>
<tr>
<td style="margin-left:40px;">Child Level 2</td>
</tr>
<tr>
<td style="margin-left:60px;">Child Level 3</td>
</tr>
<tr>
<td style="margin-left:20px;">Child Level 1</td>
</tr>
<tr>
<td style="margin-left:20px;">Child Level 1</td>
</tr>
<tr>
<td style="margin-left:40px;">Child Level 2</td>
</tr>
<tr>
<td style="margin-left:40px;">Child Level 2</td>
</tr>
</table>
我的PHP代碼如下迄今爲止,
public function renderCategoriesRecursive($items)
{
foreach($items as $item)
{
$itemCount = count($item['items']);
echo CHtml::openTag('tr');
echo CHtml::openTag('td',array('class'=>$class));
echo $item['label'];
echo CHtml::closeTag('tr');
echo CHtml::closeTag('tr');
if(isset($item['items']) && $itemCount)
{
$this->renderCategoriesRecursive($item['items']);
}
}
}
變量$項目包含上述
爲什麼不使用JSON?這就是它的目的。 http://php.net/manual/en/book.json.php – 2013-02-11 22:06:49
這個問題與JSON無關......除非你的意思是讓他使用AJAX並用Javascript模板構建客戶端。 – runspired 2013-02-11 22:13:54
你真的應該使用嵌套列表,但我會給你一個解決方案下面使用表格。 – runspired 2013-02-11 22:15:58