LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 729|回复: 0

在php中使用数组的一个重要点

[复制链接]
发表于 2005-1-11 23:39:09 | 显示全部楼层 |阅读模式
今天写一个从mysql数据库中读取网站导航菜单的程序,最初直接使用变量可以很好地输出,后来为了调用每个菜单名字、链接方便,改用了数组。问题就在这里出现了:

  1. function menu() {
  2.         $sql=$GLOBALS['sql'];
  3.         $sql->Query("Select name,link from menu order by number");
  4.         $num=$sql->rows;
  5.         for ($i=0;$i<$num;$i++) {
  6.         $sql->Fetch($i);
  7.         $menu[$i][0]=$sql->data[0];//菜单的名字
  8.         $menu[$i][1]=$sql->data[1];//菜单链接的URL地址
  9.         }
  10.         return $menu;
  11. }
复制代码

这段代码无论如何都不能把菜单名字和链接完整地赋予menu数组的,如果在menu数组前添加

  1. $display=$sql->data[0];
  2. echo ""$display=$display<br />\n";
  3. $menu[$i][0]=$display;
复制代码

函数依然不能返回导航菜单的内容,一个也没有!为什么?查php手册
  1. 如果你给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1。如果当前还没有整数索引,则键名将为 0。如果制定的键名已经有值了,该值将被覆盖。
复制代码

所以,必须将
  1. $menu[$i][0]=$sql->data[0];
复制代码
改为
  1. $menu[][0]=$sql->data[0];
复制代码

至于后面的那句为什么不改,因为上面我们修改的那句已经创建了一个新的键名了,这里直接使用就可以了。现在就可以直接使用menu数组在页面任何位置显示指定的菜单项了,本人认为这一点对于开发动态网站发布程序至关重要。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表