0

我有一个表格形式的数组

$array = array(
    name => array (
        [0] => peter,
        [1] => george,
        [2] => sarah
    ),
    age => array(
        [0] =>1,
        [1] =>2,
        [2] =>3
    )
)

我想将它解析成一个表,但是当我使用 foreach 循环时,我似乎无法让它正确输出。

如果我使用

foreach($array[name] as $name){
    foreach($array[age] as $age{

        echo $name.$age;
    }
}

然后它只是输出每个年龄的名称,然后移动到下一个名称,然后执行所有 3 个年龄,然后是最后一个年龄..

我想:

姓名1 年龄1 姓名2 年龄2 姓名3 年龄3

4

6 回答 6

8

尝试这个:

foreach($array['name'] as $iKey => $name){

echo $name.$array['age'][$iKey];

}
于 2013-10-18T15:29:05.477 回答
4
foreach (array_keys($array['name']) as $key) {
    echo $array['name'][$key] . $array['age'][$key];
}

基本上,从您的“主”数组之一中获取子数组键,然后在循环内使用该键从两个子数组中提取您需要的任何数据。

array_keys 您可以在官方文档中找到更多详细信息。

于 2013-10-18T15:29:15.907 回答
1
$array = array(
    'name' => array(
    0 => 'peter',
    1 => 'george',
    2 => 'sarah'
    ),
    'age' => array(
    0 =>'1',
    1 =>'2',
    2 =>'3'
    )
);

foreach($array['name'] as $key => $value)
{
    echo 'Name: ' . $value . ' - Age: ' . $array['age'][$key].'<br />';
}

编辑:哦,太晚了:)

于 2013-10-18T15:31:46.610 回答
0

安装时使用:

$i=0;
$len=count($array['name']);
while($i<$len){
   echo $array['name'][$i].$array['age'][$i];
   ++$i;
}

使用预先计算,在循环之前而不是在循环中设置循环的最大值。

有关微优化技巧,请参阅以下文章http://labs.phurix.net/posts/50-php-optimisation-tips-revisited

于 2013-10-18T15:30:34.683 回答
0
for ($i = 0; $i < count($array['name']); $i++) {    
   echo $array['name'][$i].$array['age'][$i];
}
于 2013-10-18T15:32:04.690 回答
0

这是您的问题的代码:

<?php
$array = array(
"name" => array (
0 => "peter",
1 => "george",
2 => "sarah"
),
"age" => array(
0 =>1,
1 =>2,
2 =>3
)
);
$name = $array['name'];
$age = $array['age'];


for($i=0;$i<count($name);$i++)
{
 echo $name[$i].' '.$age[$i].' ';
}
?>
于 2013-10-18T15:33:32.330 回答