2012-09-10 30 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>'; 

?> 

我顯示每個陣列和所述第一和第二陣列的值的主密鑰我的數據,。例如

'five' => array(
      'sidebarname' => 'onegg', 
      'sidebarid' => 'onehh' 
     ), 

我正在顯示五,sidebarname價值和sidebarid。這價值是什麼,我在HTML很期待。

http://jsfiddle.net/83hNB/

如何使用的foreach顯示sidebarid作爲一個文本,而不是輸入文本。

+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

您應該刪除第二個循環d顯示第一個值作爲輸入的鍵值,第二個值作爲文本區域。

你的代碼應該看起來像這樣我試過了,它根據你的需要輸出。

<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>'; 


?> 

希望這將有助於