显示从函数返回的多维数组的值

时间:2009-10-11 12:05:34

标签: php multidimensional-array

function sitemap_galerija($tablica)
{
    require("include/konekcija.php");

    if($tablica == 'kategorije')
    {
        // Connect do database

        ...

        while($row = mysql_fetch_array($sql_result))
        {
            $kategorija['naziv'][] = $row["naziv"];
            $kategorija['naziv_url'][] = $row["naziv_url"];
        }

        return $kategorija;
    }   
}

我设法打印数组的值,但无法弄清楚如何处理数组键。 我希望这个印刷品是这样的:

$kategorije = sitemap_galerija('kategorije');

foreach($kategorije as $kat)
{  
    echo  "<li><a href='$kategorija[naziv_url]'>$kategorija[naziv]</a></li>";
}

3 个答案:

答案 0 :(得分:3)

你真的必须保存nazivnaziv_url之间的关系,它将在未来帮助你。只需从DB中获取它:

$kategorija[$row['naziv_url']] = $row["naziv"];

然后你可以像这样枚举这个数组:

foreach($kategorija as $naziv_url => $naziv) {
}

始终使用您知道唯一的值作为键,我认为在这种情况下url是唯一的。

答案 1 :(得分:2)

您将需要密钥来并行迭代两个数组:

for ($i=0, $n=count($kategorije['naziv_url']); $i<$n; ++$i) {
    echo  "<li><a href='".$kategorija['naziv_url'][$i]."'>".$kategorija['naziv'][$i]."</a></li>";
}

答案 2 :(得分:2)

您希望$kategorija数组使用普通数字作为键,对于每个数字,您需要使用nazivnaziv_url键的数组:

while($row = mysql_fetch_array($sql_result))
{
    // $kategorija['naziv'][] = $row["naziv"];
    // $kategorija['naziv_url'][] = $row["naziv_url"];
    $kategorija[] = array('naziv' => $row['naziv'], 'naziv_url' => $row['naziv_url']);
    // The following works as well, but then you store all the keys in the kategorija array and I don't know if that's what you want:
    // $kategorija[] = $row;
}

然后您可以将foreach循环调整为:

foreach($kategorije as $kat)
{  
    echo  '<li><a href="' . $kat['naziv_url'] . '">' . $kat['naziv'] . '</a></li>';
}