循环遍历多个数组

时间:2014-10-27 19:03:55

标签: php arrays multidimensional-array foreach

我有一个数组数组,希望按特定顺序放置数据。

这是我的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 - ...

3 个答案:

答案 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

相关问题