<?php
$a = array('a'=>1, 'b'=>0, 'c'=>NULL);
 
echo 'a test by empty: ' , empty($a['a']) ? 'not exist' : 'exist', PHP_EOL;
echo 'a test by isset: ' , isset($a['a']) ? 'exist' : 'not exist', PHP_EOL;
echo 'a test by array_key_exists: ' , array_key_exists('a', $a) ? 'exist' : 'not exist', PHP_EOL, PHP_EOL;
 
echo 'b test by empty: ' , empty($a['b']) ? 'not exist' : 'exist', PHP_EOL;
echo 'b test by isset: ' , isset($a['b']) ? 'exist' : 'not exist', PHP_EOL;
echo 'b test by array_key_exists: ' , array_key_exists('b', $a) ? 'exist' : 'not exist', PHP_EOL, PHP_EOL;
 
echo 'c test by empty: ' , empty($a['c']) ? 'not exist' : 'exist', PHP_EOL;
echo 'c test by isset: ' , isset($a['c']) ? 'exist' : 'not exist', PHP_EOL;
echo 'c test by array_key_exists: ' , array_key_exists('c', $a) ? 'exist' : 'not exist', PHP_EOL, PHP_EOL;
?>

输出结果如下:

========================================================

a test by empty: exist

a test by isset: exist

a test by array_key_exists: exist

b test by empty: not exist

b test by isset: exist

b test by array_key_exists: exist

c test by empty: not exist

c test by isset: not exist

c test by array_key_exists: exist

========================================================

注意红色高亮部分

三种方式的语法区别

  • empty: 参数为0或为NULL时(如上面列子),empty均返回TRUE,
  • isset: 参数为NULL时,返回FALSE,0与NULL在PHP中是有区别的,isset(0)返回TRUE
  • array_key_exists: 纯粹的判断数组键值对是否存在,无论值是多少

所以,从准确性的角度来看,array_key_exists是最准确的!

声明:此博文是摘抄他人文章,旨在方便查找,学习使用,

PHP判断键值数组是否存在,使用empty或isset或array_key_exists的更多相关文章

  1. PHP判断键值数组是否存在,使用empty或isset或array_key_exists(转)

    一个例子 猜猜看,下面的例子会输出什么? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $a = array('a'=>1, 'b'=>0, 'c'= ...

  2. codewars--js--Valid Braces--正则、键值数组

    问题描述: Write a function that takes a string of braces, and determines if the order of the braces is v ...

  3. php 键值数组搜索查询

    php  键值数组查询 ,需要先将其转换为纯数组,然后才能用in_array 进行搜索. $arr_combos = [ ['id' => '1001', 'value' => 'zs' ...

  4. 怎样理解数组的空元素empty与undefined的区别

    数组的空元素empty表示空位, 它不是一种数据类型, 而是由于人为修改arr.length 或者写入时多写了逗号造成的. var arr = [1,2,3,4,,,5]; arr.length; a ...

  5. 判断数组中有没有某个键 isset 和 array_key_exists 的效率比较

    判断数组中有没有某个键 isset 和 array_key_exists 谁的效率高呢? 使用 array_key_exists 代码如下 结果如下 如果使用 isset 代码如下 结果如下: 很明显 ...

  6. DWR3.0 dwr 返回值(数组,集合,Map)

    首先导入项目所需要的包,如下:dwr.jar,commons-logging-1.0.4.jar,版本可以调整 1.web.xml<?xml version="1.0" en ...

  7. 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...

  8. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...

  9. 前端基础之javaScript(基本类型-布尔值数组-if-while)

    目录 一:javaScript基本数据类型 1.字符串类型常用方法 2.返回长度 3.移出空白 4.移除左边的空白 5.移出右边的空格 6.返回第n个字符 7.子序列位置 8.根据索引获取子序列 9. ...

随机推荐

  1. 序列变换(hdu5248)

    序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. Linux 系统结构

    Linux的系统结构一般由四部分组成 内核 1)内核 操作系统的核心,具有最基本的功能:内存管理.进程管理.设备驱动管理.文件系统管理,网络管理 内核版本(kernel)查看的三种方法 cat /pr ...

  3. PHP isset()与empty()的使用区别详解

    通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言.庞大的函数库支持着PHP语言功能的实现.下面我们为大家介绍有关PHP函数isset()与empty()的相关用法.   PHP的is ...

  4. php初探

    1.php中的连接符.可以连接多个字符串,相当于java中的+ 2.echo必须与后面的输出内容有至少一个空格 3.php编程中每个结尾都需要添加分号

  5. java反射机制简介

    1.字节码.所谓的字节码就是当java虚拟机加载某个类的对象时,首先需要将硬盘中该类的源代码编译成class文件的二进制代码(字节码),然后将class文件的字节码加载到内存中,之后再创建该类的对象 ...

  6. 启动一个线程是用run()还是start()?

    启动一个线程是用run()还是start()? 答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行.这并不意味着线程就会立即运行.run ...

  7. HDU 5002 Tree(动态树LCT)(2014 ACM/ICPC Asia Regional Anshan Online)

    Problem Description You are given a tree with N nodes which are numbered by integers 1..N. Each node ...

  8. 夺命雷公狗---DEDECMS----11dedecms字段标签

    如果我们在开发的时候需要对获取的某个字段进行二次开发,我们可以对字段值调用某个函数来完成需求, 实例代码如下所示: <!DOCTYPE html> <html> <hea ...

  9. libSVM的数据格式

    首先介绍一下 libSVM的数据格式 Label 1:value 2:value -. Label:是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15 ...

  10. linux与windows的文本文件之间的转换

    在CentOS中需要安装一个软件包:tofrodos 包里包含的命令可以用包管理工具列出包里的文件. 以 CentOS 的 rpm 为例: rpm -ql tofrodos 在ArchLinux中需要 ...