无法使用多维数组在foreach循环中显示变量

时间:2011-09-23 18:43:53

标签: php arrays foreach

我能够在foreach循环中显示id和标签没问题。但是我在显示标题和身高方面遇到了麻烦。我不确定如何将它们调用到foreach循环中。

我可以在while循环中调用它们,所以我知道它们正在工作。

$persons = array();
$tags = array();

while( ($row = mysqli_fetch_array( $rs, MYSQLI_ASSOC)))
{
    if(!isset( $persons[$row['id']]))
    {
        $persons[$row['id']]['title'] = $row['title'];
        $persons[$row['id']]['height'] = $row['height'];
        $persons[ $row['id'] ] = array( 'id' => $row['id'], 'tag' => $row['tag']);
        $tags[ $row['id'] ] = array();
    }
    $tags[ $row['id'] ][] = $row['tag'];
}

foreach( $persons as $pid => $p)
{
    echo 'id: # ' . $p['id'] ;
    echo 'title: ' . $p['title'];
    echo 'height: ' . $p['height'];
    echo '<a href="#">' . implode( '</a>, <a href="#">', $tags[ $p['id'] ])  . '</a>';
    echo '<br /><br />';
}

1 个答案:

答案 0 :(得分:2)

当您设置标记时,您将覆盖$ persons [$ row ['id']],因此您丢失了其他数据。