Php 在foreach中显示某些值
我有这段代码,我用它以表格格式显示我的数据Php 在foreach中显示某些值,php,Php,我有这段代码,我用它以表格格式显示我的数据 <style> td{ border:1px solid orange; } table{ border:1px solid orange; } </style> <?php $arr = array( 'one' => array( 'sidebarname' => 'first', 'sidebarid' => 'first1' ), 'two'
<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>';
?>
我正在显示五个,分别是sidebarname
的值和sidebarid
的值。这是我在html中所期望的
如何使用foreach将
sidebarid
显示为文本区域而不是输入文本。您应该删除第二个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>';
echo';
foreach($arr作为$key=>$value){
回声“;
回声“;
回显“$value['sidebarid']”;
}
回声';
您应该移除第二个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>';
echo';
foreach($arr作为$key=>$value){
回声“;
回声“;
回显“$value['sidebarid']”;
}
回声';
将内部循环更改为:
<?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()
和“on thevalue=”“
属性。将用户数据输出到HTML时,这两个属性都非常重要。将内部循环更改为:
<?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=”“
属性上的“on”。将用户数据输出到HTML时,这两者都非常重要。您应该删除第二个循环,并将每个键的第一个值显示为输入,将第二个值显示为文本区域
你的代码应该是这样的,我试过了,它会根据你的需要输出
<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>';
?>
运输署{
边框:1px实心橙色;
}
桌子{
边框:1px实心橙色;
}
希望它会有所帮助您应该删除第二个循环,并显示每个键的第一个值作为输入,第二个值作为文本区域 你的代码应该是这样的,我试过了,它会根据你的需要输出
<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>';
?>
运输署{
边框:1px实心橙色;
}
桌子{
边框:1px实心橙色;
}
希望它能有所帮助你能把你的问题重新表述一下吗?你为什么不使用
$value['sidebarname']
和$value['sidebarid']
等等。这样你就不需要第二个循环了。你能把你的问题重新表述一下吗?你为什么不使用$value['sidebarname']
和$value['sidebarid']
等等。这样就不需要第二个循环。