代码之家  ›  专栏  ›  技术社区  ›  ilija veselica

显示函数中多维数组returend的值

  •  0
  • ilija veselica  · 技术社区  · 15 年前
    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 回复  |  直到 15 年前
        1
  •  2
  •   Joost    15 年前

    你想要你的 $kategorija 数组使用普通数字作为键,对于每个数字,您将拥有一个数组 naziv naziv_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>';
    }
    
        2
  •  3
  •   vava    15 年前

    你真的必须保存 naziv naziv_url 以后会有帮助的。从数据库中获取它,如下所示:

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

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

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

    始终使用您知道的唯一值作为键,在本例中我假定URL是唯一的。

        3
  •  2
  •   Gumbo    15 年前

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

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