2012-09-10 2 views
0

난 테이블 형식foreach는 일부 값을 표시

<style> 
td{ 
border:1px solid orange; 
} 
table{ 
border:1px solid orange; 
} 
</style> 
<?php 
$arr = array(
    'one' => array(
     'sidebarname' => 'first', 
     'sidebarid' => 'first1' 
    ), 
    'two' => array(
     'sidebarname' => 'oneaa', 
     'sidebarid' => 'onebb' 
    ), 
    'three' => array(
     'sidebarname' => 'onecc', 
     'sidebarid' => 'onedd' 
    ), 
    'four' => array(
     'sidebarname' => 'oneee', 
     'sidebarid' => 'oneff' 
    ), 
    'five' => array(
     'sidebarname' => 'onegg', 
     'sidebarid' => 'onehh' 
    ), 
    'six' => array(
     'sidebarname' => 'oneii', 
     'sidebarid' => 'onejj' 
    ) 
); 
echo '<table>'; 
foreach ($arr as $key => $value) { 
echo '<tr>'.'<td>'."<input type='text' value=$key />".'</td>'; 

foreach ($value as $keyed=> $newvalue) 
echo '<td>'."<input type='text' value=$newvalue />".'</td>'; 
} 

echo '</tr></table>'; 

?> 

I 각 어레이 및 제 2 어레이의 값의 기본 키를 표시하고 내 데이터를 표시하는 사용하고이 코드가있다. 예를

내가 다섯 표시하고
'five' => array(
      'sidebarname' => 'onegg', 
      'sidebarid' => 'onehh' 
     ), 

를 들어, sidebarname의 가치와 sidebarid .This의 값은 내가 HTML에 기대하고있는 무슨이다.

http://jsfiddle.net/83hNB/

어떻게 텍스트 영역 대신 입력 텍스트로 sidebarid를 표시하는 foreach 문을 사용할 수 있습니다.

+0

당신이 질문을 조금 바꿔 주시겠습니까 도움이 될 것입니다 희망? – Wearybands

+1

왜 '$ value ['sidebarname ']'및'$ value ['sidebarid ']'등을 사용하지 않습니까? 이렇게하면 두 번째 루프가 필요 없습니다. –

답변

1

이미 키를 알고있는 당신은 두 번째 foreach을 제거해야합니다 :

echo '<table>'; 
foreach ($arr as $key => $value) { 
    echo "<tr><td><input type='text' value='".$key."' /></td>"; 
    echo "<td><input type='text' value='".$value['sidebarname']."' /></td>"; 
    echo "<td><textarea>".$value['sidebarid']."</textarea></td>"; 
} 
echo '</tr></table>'; 
1

이 당신의 내부 루프를 변경합니다

<?php 
foreach ($value as $keyed=> $newvalue) { 
    if ($keyed === 'sidebarid') { 
     echo '<td><textarea>'.htmlspecialchars($newvalue).'</textarea></td>'; 
    } else { 
     echo '<td><input type="text" value="'.htmlspecialchars($newvalue).'" /></td>'; 
    } 
} 
?> 

htmlspecialchars()과 "를 value="" 속성에 유의하시기 바랍니다. 두 가지 모두 사용자 데이터를 HTML로 출력 할 때 매우 중요합니다.

2

두 번째 루프는 첫 번째 값 foreach 키를 입력으로 표시하고 sencond 값을 텍스트 영역으로 표시합니다.

코드는 다음과 같아야합니다. 내가 시도해 본 결과 필요에 따라 출력됩니다.

<style> 
td{ 
border:1px solid orange; 
} 
table{ 
    border:1px solid orange; 
} 
</style> 
<?php 
$arr = array(
'one' => array(
    'sidebarname' => 'first', 
    'sidebarid' => 'first1' 
), 
'two' => array(
    'sidebarname' => 'oneaa', 
    'sidebarid' => 'onebb' 
), 
'three' => array(
    'sidebarname' => 'onecc', 
    'sidebarid' => 'onedd' 
), 
'four' => array(
    'sidebarname' => 'oneee', 
    'sidebarid' => 'oneff' 
), 
'five' => array(
    'sidebarname' => 'onegg', 
    'sidebarid' => 'onehh' 
), 
'six' => array(
    'sidebarname' => 'oneii', 
    'sidebarid' => 'onejj' 
) 
); 

echo '<table>'; 
    foreach ($arr as $key => $value) { 
    echo "<tr><td><input type='text' value='".$key."' /></td>"; 
    echo "<td><input type='text' value='".$value['sidebarname']."' /></td>"; 
    echo "<td><textarea>".$value['sidebarid']."</textarea></td>"; 
} 
echo '</tr></table>'; 


?>