PHP 中检查是否关联数组(多维数组)的方法 (UPDATE!)
数组在PHP中是最常用的一种数据类型,PHP 支持一维和多维数组,在操作数组元素时,对一维数组和多维数组的处理方法有许多不同之处,因此,许多时候,我们需要在操作前先检测一下数组类型,本文介绍的就是解决这一问题的方法。
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:
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 对本站的支持
转载于:https://www.cnblogs.com/labs/archive/2009/05/12/1455039.html
PHP 中检查是否关联数组(多维数组)的方法 (UPDATE!)相关推荐
- 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )
文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...
- python指定数组大小_在python中创建指定大小的多维数组方式
python中创建指定大小的二维数组,有点像C++中进行动态申请内存创建数组,不过相比较而言,python中更为简单一些. 创建n行m列的二维数组: n = 2 m = 3 matrix = [Non ...
- Vue 中利用 template标签遍历多维数组
Vue 中利用 template标签遍历多维数组 1. 需求 2. 二维数组内容 3. 列表渲染指令 v-for 4. template 标签 5. 正确的做法 作者:高玉涵 时间:2022.7.20 ...
- C# 指定格式的字符串截成一维数组(二维数组)的操作类
指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...
- php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例
php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 上面这个是针对二维数组的! 下面针对多维数组的乱序方法?尽可能的方便快速: 以下函数也是出自php手册,可 ...
- Java学习笔记2.6.2 数组 - 二维数组
文章目录 零.本讲学习目标 一.引入多维数组的场景 二.二维数组的定义 (一)指定二维数组行数与列数 (二)指定二维数组行数,不指定列数 (三)直接使用嵌套大括号"{}"静态初始化 ...
- c/c++教程 - 1.7 数组 一维数组 二维数组
九.数组 数组:一个里面存放了相同类型数据元素的集合. 特点:每个数组中的元素都是相同的数据类型:数组是由连续的内存位置组成的. 注意:数组的下标是从0开始索引. 参考视频:https://www.b ...
- php 数组重新打乱_php打乱数组二维数组多维数组的简单实例
php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 function shuffle_assoc($list) { if (!is_array($list)) ...
- day06数组-一维数组二维数组
数组: 数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话: 1.数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...
- C语言数组——二维数组
C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析 VS ...
最新文章
- python 变量名重新赋值 变量重新赋值 通过字典的方式
- 软工网络15个人阅读作业2——提问题
- java锁_Java锁
- 去除桌面图标的小箭头
- python中的map,feilter,和reduce函数
- c替代if else_答应我,别再if/else走天下了可以吗
- node.js之第一天
- gcc/g++ 编译、链接与常用命令工具(1)
- 冯乐乐之二 shader的数学
- 手机开热点但是电脑一直连接不上_电脑连接手机热点无法上网的三种解决方法...
- OJ每日一练——输出元音字母
- ROS编程入门(C++ 及 思路)
- LabVIEW通讯-TCP
- C语言实现扫雷小游戏(具体步骤+具体说明)
- vue-微信小程序-自定义计时器-答题倒计时
- soon or later,There is a decision to make.
- 信噪比SNR、符号信噪比Es/N0与比特信噪比Eb/N0的关系
- 万网绑定二级域名_万网虚拟主机绑定多个子域名的操作方法
- 开一个羽毛球馆大概需要多少钱?大约15万左右可以搞定!
- c语言怎么判断数组是否为空,PHP 判断数组是否为空的几种方法
热门文章
- win7下安装VC6LineNumberAddin方法[VC6行号插件]
- java redis 哨兵_突破Java面试(23-7) - Redis的哨兵架构
- Linux系统编程 --- 系统调用
- 使用@Validated分组遇到的坑及解决方案
- readhat7mysql_Redhat7.3安装MySQL8.0.22的详细教程(二进制安装)
- 网站安全之为Web项目添加验证码功能(一)
- SpringBoot + Eureka启动失败
- [渝粤教育] 郑州财税金融职业学院 玩转e时代 参考 资料
- 【渝粤教育】国家开放大学2018年春季 8038-22T实用管理基础 参考试题
- 【渝粤教育】广东开放大学 标准的研制与编制 形成性考核 (35)