PHP無限極分類之數組
<?php
$data = array( 1 => array('id' => 1,'name' => 'name1','pid' => 0),
2 => array('id' => 2,'name' => 'name2','pid' => 0),
3 => array('id' => 3,'name' => 'name3','pid' => 1),
4 => array('id' => 4,'name' => 'name4','pid' => 0),
5 => array('id' => 5,'name' => 'name5','pid' => 3),
6 => array('id' => 6,'name' => 'name6','pid' => 3),
);
$str = getTree(0);
$str = "<select name='term'>" . $str . "</select>";
echo $str;
function getTree($id,$spac=0)
{
$data = array( 1 => array('id' => 1,'name' => 'name1','pid' => 0),
2 => array('id' => 2,'name' => 'name2','pid' => 0),
3 => array('id' => 3,'name' => 'name3','pid' => 1),
4 => array('id' => 4,'name' => 'name4','pid' => 0),
5 => array('id' => 5,'name' => 'name5','pid' => 3),
6 => array('id' => 6,'name' => 'name6','pid' => 3),
);
$spac = $spac + 2;
static $str;
foreach ($data as $k => $v) {
if ($v['pid'] == $id) {
$arr[] = $v;
$str .= "<option value='" . $v['id'] . "'>" . str_repeat(" ",$spac) . "|--" . $v['name'] . "</option>";
getTree($v['id'],$spac);
}
}
return $str;
}
?>