InfoQ

交流

讨论:请教!当数组同时使用了assoc和num时,元素将以双份拷贝存储?

作者 wangfeng_1981 发布于 0000-00-00 分类:php基础编程

当数组同时使用了ASSOC和NUM时,
用count($array)统计元素个数时,
结果是元素总数的两倍.
是不是PHP将元素分别按照ASSOC和NUM做了两分拷贝!

这样在用count()统计数组个数时就存在个问题,
万一不知道数组是否同时使用了ASSOC和NUM,
就会导致统计的错误!

1.用while ( list( $key, $val ) = each( $array )取数组也会得到双份拷贝!
2.用php4的新语句 foreach($array as $key=$value) 来循环数组,也会得到 双份拷贝!
3.包括其他很多php数组函数都会得到双倍的 循环拷贝!

我有两个问题是:
(一).
  如何正确统计数组的元素个数.
(二).
  写一个函数 打印出数组中所有的值.避免双份拷贝!

注::
数组可能出现的3种情况:
1.只有 ASSOC
2.只有 NUM
3.同时有 ASSOC和NUM



逛论坛交流请教!当数组同时使用了assoc和num时,元素将以双份拷贝存储?

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

8 条回复

回复

不应该出现此情况, 请贴代码? 发表人 zchain 发表于 11月02日
QUOTE: 最初由 zchain 发布 .. 发表人 wangfeng_1981 发表于 11月02日
最好还是把代码铁出来 发表人 smail 发表于 11月02日
是不是我没有说清楚, 我指的双份拷贝.. 发表人 wangfeng_1981 发表于 11月02日
举个实际的例子, 用mysql_fetch_arr.. 发表人 wangfeng_1981 发表于 11月02日
可能我的思维方式有问题! ... 发表人 wangfeng_1981 发表于 11月02日
QUOTE: 最初由 wangfeng_1981 发.. 发表人 tmyu 发表于 11月02日
QUOTE: 发表人 wangfeng_1981 发表于 11月02日
  1. 不应该出现此情况, 请贴代码?


  2. QUOTE:
    最初由 zchain 发布
    [B]不应该出现此情况, 请贴代码? [/B]

    你是指什么情况不应该出现?
    当数组同时使用了ASSOC和NUM时,
    用count($array) 统计的 数目不应该 是双倍?
    还是需要同时使用ASSOC和NUM的情况不应该出现?

  3. 最好还是把代码铁出来

  4. 是不是我没有说清楚,
    我指的双份拷贝是ASSOC和NUM两份拷贝

  5. 举个实际的例子,
    用mysql_fetch_array() 时,
    可以选择MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH.

    如果在不知道选的哪个的情况下,
    用foreach就可能会出现 双份的操作

    如何避免?

  6. 可能我的思维方式有问题!
    ...


  7. QUOTE:
    最初由 wangfeng_1981 发布
    [B]举个实际的例子,
    用mysql_fetch_array() 时,
    可以选择MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH.

    如果在不知道选的哪个的情况下,
    用foreach就可能会出现 双份的操作

    如何避免? [/B]

    如果知道要用foreach就用mysql_fetch_num取数据,


  8. QUOTE:




  9. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


  10. 抢着回答

    请抓一副php欢迎页面的图给我!急用!

    明天要毕业答辩了,请好心人帮个忙!最好再抓一副phpmyadmin的图...

    有没有村民买的空间被禁掉了unlink() ?

    有没有其他办法用php删图片? 谢谢

    linuxbyte重开了。大家快去抢注呀

    谁抢注sadly?

    imap如何操作mail

    我在 http://bbs.phpres.com/showthread.php?s=&threadid=5487 ...

    [求助]有什么办法可以求出当月是有28天...

    小弟不才,希望各位高手指教,谢谢

    年龄计算问题

    计算年龄时我用这个函数获得年龄 function get_age($birth){ ...

    锚点起什么作用?

    能举个例子吗?谢了

    大家进来帮帮忙哩

    想在字串入数据库前,将字串中的回车去掉再入库,怎做啊? ...

    [投票]大家用postgresSql+PHP吗?

    大多数人用Mysql来做网站等等,那么大家用postgresql吗?

    mysql数据库文件可以复制吗

    我从服务器的mysql安装目录下的data目录复制一些数据库文件到我自...

    []