注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

融智技术学院

融智技术学院163分站,为广大好友提供更多的帮助

 
 
 

日志

 
 

【PHP每日一问】PHP数组:检查一个数组是关联数组还是索引数组的好方法  

2014-03-21 16:28:24|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

问:

PHP中将所有的数组都作为关联数组处理,所以这里没有任何内建的函数。谁能推荐我一个相当高效的方式来检测一个数组是否只包含数值键?

基本上,我想确定这个:

  • $sequentialArray = array('apple', 'orange', 'tomato', 'carrot');

和这个:

  • $assocArray = array('fruit1' => 'apple',
  •                     'fruit2' => 'orange',
  •                     'veg1' => 'tomato',
  •                     'veg2' => 'carrot');

的不同。

 

答:

这可以完成你的要求:

  • <?php
  • function isAssoc($arr)
  • {
  •     return array_keys($arr) !== range(0, count($arr) - 1);
  • }
  •  
  • var_dump(isAssoc(array('a', 'b', 'c'))); // false
  • var_dump(isAssoc(array("0" => 'a', "1" => 'b', "2" => 'c'))); // false
  • var_dump(isAssoc(array("1" => 'a', "0" => 'b', "2" => 'c'))); // true
  • var_dump(isAssoc(array("a" => 'a', "b" => 'b', "c" => 'c'))); // true
  •  
  • ?>

这里是一个已知的问题:

  • var_dump(isAssoc(array(1 => 'string'))); // Should return false, but returns true.

去查看更多的回答,特别是这个http://stackoverflow.com/a/4254008/6681可以作为替代。

  评论这张
 
阅读(144)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017