我有一个数组数组,希望按特定顺序放置数据。
这是我的html表单。用户可以根据需要添加新行以输入更多数据。
<tr>
<td><input type="text" value="" placeholder="Date of Transfer" name="date[]"/></td>
<td><input type="text" value="" placeholder="Equpment Tag" name="tag[]"/></td>
<td><input type="text" value="" placeholder="Equpment Model" name="model[]"/></td>
<td><input type="text" value="" placeholder="Current Room" name="oldRoom[]"/></td>
<td><input type="text" value="" placeholder="Current Owner" name="oldOwner[]"/></td>
<td><input type="text" value="" placeholder="Current Dept" name="oldDept[]"/></td>
<td><input type="text" value="" placeholder="New Room" name="newRoom[]"/></td>
<td><input type="text" value="" placeholder="New Owner" name="newOwner[]"/></td>
<td><input type="text" value="" placeholder="New Dept" name="newDept[]"/></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3"><a href="javascript:void(0);" id='anc_add'>Add Row</a></td>
<td colspan="3"><a href="javascript:void(0);" id='anc_rem'>Remove Row</a></td>
<td colspan="3"><button type="submit">Submit</button></td>
</tr>
然后我将$ _POSTed值放入$ data数组变量。
$data = array( tag => $_POST['tag'],
model => $_POST['model'],
oldRoom => $_POST['oldRoom'],
oldOwner => $_POST['oldOwner'],
oldDept => $_POST['oldDept'],
newRoom => $_POST['newRoom'],
newOwner => $_POST['newOwner'],
newDept => $_POST['newDept']
);
我想出了如何获得我想手动获取$ data数组值的结果,但想要遍历所有数据。
//manual retreaval
echo "</br></br>Manually getting data from the $data array</br>";
echo $data['tag'][0] . " - " . $data['model'][0] . " - " . $data['oldRoom'][0];
输出:
tag1 - model1 - oldRoom1
那么我是如何编写一个php脚本来循环使用上面所示格式的$ data数组?
tag1 - model1 - oldRoom1 - .... tag2 - model2 - oldRoom2 - ...
答案 0 :(得分:1)
您可以使用foreach()
循环遍历所有值,即标记:
foreach($data['tag'] as $tag)
{
echo $tag;
}
访问不同数组中的相同索引,即创建&#34;匹配&#34;在旧房间和老房主之间,您可以使用:
foreach($data['oldRoom'] as $index => $oldRoom)
{
if(isset($data['oldOwner'][$index]))
echo $oldRoom . " belonged to " . $data['oldOwner'][$index];
else
echo $oldRoom . " didn't have an old owner! :(";
}
答案 1 :(得分:0)
使用foreach()
循环 -
foreach($data as $key => $value) {
echo 'key: '.$key.' value: '.$value.'<br>';
}
答案 2 :(得分:0)
要获得我正在寻找的输出,我需要创建一个for循环。首先,我需要计算存储了多少个值,然后循环,直到$ i为&lt; = $ c - 1。
$c = count($data['tag']);
for ($i = 0; $i <= $c -1 ; $i++) {
echo $data['tag'][$i] . " - " .
$data['model'][$i] . " - " .
$data['oldRoom'][$i] . " - " .
$data['oldOwner'][$i] . " - " .
$data['oldDept'][$i] . " - " .
$data['newRoom'][$i] . " - " .
$data['newOwner'][$i] . " - " .
$data['newDept'][$i] . "</br>";
}
<强>输出强>:
tag1 - model1 - room1 - owner1 - dept1 - room1 - owner1 - dept1
tag2 - model2 - room2 - owner2 - dept2 - room2 - owner2 - dept2