루프에 5b7a15bed8615d1b843806256bebea72을 삽입하는 방법은 무엇인가요?
$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', ), );이러한
array를 사용하여 다음과 같은 효과를 얻고 싶습니다.
<select name="categorys"> <optgroup label="WEB编程"> <option value="2" >PHP</option> <option value="3" >Ajax</option> <option value="4" >java</option> </optgroup> <optgroup label="WinForm编程"> <option value="6" >VB</option> <option value="7" >VC</option> </optgroup> </select>
$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 '<select name="categorys">'; foreach($data as $v) { if($v['parentid'] == 0) echo "<optgroup label='$v[name]'>"; else echo "<option value='$v[id]' >$v[name]</option>"; } echo '</select>';잔소리 형제님, 위 작업에는 여전히 끝 문자 bc2752b74169f27a1fb12a4976198c73가 없습니다.
이 bc2752b74169f27a1fb12a4976198c73을 추가하는 방법이 궁금합니다.
echo "<optgroup label='$v[name]'>$v[name]</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', ), ); $tempArray = array(); foreach($data as $item){ $tempArray[$item['parentid']][$item['id']] = $item['name']; } 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 '<select style="width:200px;">'; for($i=0,$il=count($data);$i<$il;$i++){ echo '<optgroup label="'.$data[$i]['name'].'">'; for($j=0,$jl=count($data[$i]['sub']);$j<$jl;$j++){ echo '<option>'.$data[$i]['sub'][$j]['name'].'</option>'; } echo '<optgroup>'; } echo '</select>';정말요?
아, 누락된 bc2752b74169f27a1fb12a4976198c73
이 있는데 코드를 테스트해 보니 있는 것과 없는 것의 차이를 못 느꼈어요
꼭 있어야 한다면 스위치
변수를 추가하면 됩니다. 왜 여러 번 순환해야 합니까?
echo '<select name="categorys">'; $k = false; foreach($data as $v) { if($v['parentid'] == 0) { echo "<optgroup label='$v[name]'>"; $k = true; }else { if($k) echo '</optgroup>'; echo "<option value='$v[id]' >$v[name]</option>"; $k = false; } } echo '</select>';
위 내용은 루프에서