PHP如何将两个数组的值放在一个表中?

时间:2014-06-02 08:52:39

标签: php arrays loops

我有两个数组:

$aGente = array('jan'=> 'm', 'alice'=> 'v', 'veronica'=> 'v', 'herman'=> 'm',
'maria'=> 'v', 'angelica' => 'v' , 'nancy' => 'v', 'pieter' => 'm');

$aLeeftijd = array('jan'=> 12, 'alice'=> 17, 'veronica'=> 65, 'herman'=> 88,
'maria'=> 23, 'angelica' => 22 , 'nancy' => 45, 'pieter' => 39);

我需要将所有人的名字放在一张桌子上,我需要将它们分开,这样你就可以让左边的所有男性人员和桌子右侧的所有女性。请有人帮我这个吗? 见啊!

1 个答案:

答案 0 :(得分:1)

内置阵列功能可能有更高效的方法,但说实话,我现在还没有研究过。

我可以提供的便于访问的解决方案是在结构良好的新数组中添加信息,该数组在同一个键下保存leftright

E.g。 $newArray[0] = array('left' => 'jan', 'right => 'veronika');

然后foreach ($newArray as $k => $v)你可以设置你桌子的左侧

<td>$v['left']</td>

在右边:

<td>$v['right']</td>

你最终会得到表

jan | veronika

这是我的工作,不是那么好的代码,但得到了结果:

<?php
function addToPeopleTable(array $genders, array $ages, array &$people, $where = 'left') {
    $g = $where == 'left' ? 'm' : 'v';
    $i = 0;
    foreach ($genders as $key => $value) {
        if ($value == $g) {
            $people[$i][$where] = array('gender' => $genders[$key], 'age' => $ages[$key], 'name' => $key);
            $i++;
        }
    }
}
$genders = array('jan'=> 'm', 'alice'=> 'v', 'veronica'=> 'v', 'herman'=> 'm',
'maria'=> 'v', 'angelica' => 'v' , 'nancy' => 'v', 'pieter' => 'm');

$ages = array('jan'=> 12, 'alice'=> 17, 'veronica'=> 65, 'herman'=> 88,
'maria'=> 23, 'angelica' => 22 , 'nancy' => 45, 'pieter' => 39);


$people = array();

addToPeopleTable($genders, $ages, $people, 'left');
addToPeopleTable($genders, $ages, $people, 'right');


?>
<table border=1>
<?php foreach ($people as $key => $value): ?>
    <tr>
        <td><?php echo $value['left']['name'];?></td>
        <td><?php echo $value['right']['name'];?></td>
    </tr>
<?php endforeach; ?>
</table>

输出:

| jan      |    alice    |
| herman   |    veronica |
| pieter   |    maria    |
|          |    angelica |
|          |      nancy  |