optgroup php,在循环里如何使用<optgroup>标签

如何在循环里插入?$data = array (

0 =>

array (

'id' => '1',

'name' => 'WEB编程',

'parentid' => '0',

),

1 =>

array (

'id' => '2',

'name' => 'PHP',

'parentid' => '1',

),

2 =>

array (

'id' => '3',

'name' => 'Ajax',

'parentid' => '1',

),

3 =>

array (

'id' => '4',

'name' => 'java',

'parentid' => '1',

),

4 =>

array (

'id' => '5',

'name' => 'WinForm编程',

'parentid' => '0',

),

5 =>

array (

'id' => '6',

'name' => 'VB',

'parentid' => '5',

),

6 =>

array (

'id' => '7',

'name' => 'VC',

'parentid' => '5',

),

);

这么一个数组,想得到下面的效果。

PHP

Ajax

java

VB

VC

难点在于如何在foreach里判断把包含在里,折腾了半天也没出办法。请高手指点如何完成。$data = array (

0 => array (

'id' => '1',

'name' => 'WEB编程',

'parentid' => '0',

),

1 => array (

'id' => '2',

'name' => 'PHP',

'parentid' => '1',

),

2 => array (

'id' => '3',

'name' => 'Ajax',

'parentid' => '1',

),

3 => array (

'id' => '4',

'name' => 'java',

'parentid' => '1',

),

4 => array (

'id' => '5',

'name' => 'WinForm编程',

'parentid' => '0',

),

5 => array (

'id' => '6',

'name' => 'VB',

'parentid' => '5',

),

6 => array (

'id' => '7',

'name' => 'VC',

'parentid' => '5',

),

);

echo '';

foreach($data as $v) {

if($v['parentid'] == 0)

echo "";

else

echo "$v[name]";

}

echo '';

唠叨大哥,你上面的操作还是缺了结束符啊

我就是在苦闷如何把这个加进去。echo "$v[name]";

稍微改下就行了。$data = array (

0 =>

array (

'id' => '1',

'name' => 'WEB编程',

'parentid' => '0',

),

1 =>

array (

'id' => '2',

'name' => 'PHP',

'parentid' => '1',

),

2 =>

array (

'id' => '3',

'name' => 'Ajax',

'parentid' => '1',

),

3 =>

array (

'id' => '4',

'name' => 'java',

'parentid' => '1',

),

4 =>

array (

'id' => '5',

'name' => 'WinForm编程',

'parentid' => '0',

),

5 =>

array (

'id' => '6',

'name' => 'VB',

'parentid' => '5',

),

6 =>

array (

'id' => '7',

'name' => 'VC',

'parentid' => '5',

),

);

$tempArray = array();

foreach($data as $item){

$tempArray[$item['parentid']][$item['id']] = $item['name'];

}

echo '';

foreach($tempArray[0] as $parentid=>$name){

echo "";

foreach($tempArray[$parentid] as $id=>$name){

echo "$name";

}

echo '';

}

echo '';

只是foreach了三次怕效率较差,不知还没有有别的方法。

重做数组的话……$data = array (

array (

'id' => '1',

'name' => 'WEB编程',

'parentid' => '0',

'sub'=>

array(

array(

'id' => '2',

'name' => 'PHP',

'parentid' => '1',

),

array (

'id' => '3',

'name' => 'Ajax',

'parentid' => '1',

),

array (

'id' => '4',

'name' => 'java',

'parentid' => '1',

)

)

),

array (

'id' => '5',

'name' => 'WinForm编程',

'parentid' => '0',

'sub'=>

array(

array (

'id' => '6',

'name' => 'VB',

'parentid' => '5',

),

array (

'id' => '7',

'name' => 'VC',

'parentid' => '5',

)

)

)

);

echo '';

for($i=0,$il=count($data);$i

echo '';

for($j=0,$jl=count($data[$i]['sub']);$j

echo ''.$data[$i]['sub'][$j]['name'].'';

}

echo '';

}

echo '';

是吗?

哦,是少了个

不过我测试代码时并没有感觉出有与没有的差异

一定要有的话,就加个开关变量。要多次循环干什么?echo '';

$k = false;

foreach($data as $v) {

if($v['parentid'] == 0) {

echo "";

$k = true;

}else {

if($k) echo '';

echo "$v[name]";

$k = false;

}

}

echo '';

以上就是在循环里如何使用标签的详细内容,更多请关注php中文网其它相关文章!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值