实验室

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组在PHP中是最常用的一种数据类型,PHP 支持一维和多维数组,在操作数组元素时,对一维数组和多维数组的处理方法有许多不同之处,因此,许多时候,我们需要在操作前先检测一下数组类型,本文介绍的就是解决这一问题的方法。


PHP:

 

 1 <?php 
 2 // 说明:摘自 xoad 的检查是否关联数组(多维数组)的方法 
 3 // 整理:http://www.CodeBit.cn 
 4  
 5 function isAssocArray($var
 6 
 7     if ( ! is_array($var)) 
 8     { 
 9         return false
10     } 
11      $arrayKeys = array_keys($var); 
12      $sequentialKeys = range(0, sizeof($var)); 
13      if (function_exists('array_diff_assoc')) 
14     { 
15         if (array_diff_assoc($arrayKeys, $sequentialKeys))  
16         { 
17             return true
18         } 
19     } 
20     else 
21     { 
22         if ((array_diff($arrayKeys, $sequentialKeys)) &&  
23             (array_diff($sequentialKeys, $arrayKeys))) 
24         { 
25             return true
26         } 
27     } 
28     return false
29 
30  $array_1 = array
31     'http://www.CodeBit.cn',  
32     'http://www.yitu.org' 
33 ); 
34  $array_2 = array
35     'CodeBit.cn'=>'http://www.CodeBit.cn',  
36     'YITU.org'=>'http://www.yitu.org' 
37 ); 
38 
39 echo (isAssocArray($array_1))?'':''// 否 
40  echo "<br />"
41  echo (isAssocArray($array_2))?'':''// 是 
42 ?>

 

数组在PHP中是最常用的一种数据类型,PHP 支持一维和多维数组,在操作数组元素时,对一维数组和多维数组的处理方法有许多不同之处,因此,许多时候,我们需要在操作前先检测一下数组类型,本文介绍的就是解决这一问题的方法。


PHP:

 1 <?php 
 2  
 3 // 说明:检查是否关联数组(多维数组)的方法 
 4 // 整理:http://www.CodeBit.cn 
 5  
 6 //作者:etng 
 7 //网址:http://www.etng.net/blog 
 8  
 9 function isAA($input
10 
11     return is_array($input)  
12             && !(array_keys($input=== range(0, sizeof($input)-1)); 
13 
14  
15 $array_1 = array
16     'http://www.CodeBit.cn', 
17     'http://www.yitu.org' 
18 ); 
19  
20 $array_2 = array
21     'CodeBit.cn'=>'http://www.CodeBit.cn', 
22     'YITU.org'=>'http://www.yitu.org' 
23 ); 
24  
25 echo isAA($array_1)?'':''// 否 
26 echo "<br />"
27 echo isAA($array_2)?'':''// 是  
28  
29 ?>


实现思路:
(1) is_array($input) 检查是否是数组。
(2) array_keys($input) 获取数组的 key(如果是一维数组,其返回一个元素是0到数组大小的数组),然后通过 range(0, sizeof($input)-1) 生成一个0 到 数组大小的一维数组,比较两个数组是否一致(===),如果一致,说明是一维数组,否则(!),便是多维数组。


网友 etng 发布的这段代码结构清晰,代码简洁,非常感谢网友 etng 对本站的支持

posted on 2009-05-12 16:36  实验室  阅读(799)  评论(0)    收藏  举报