情境

有时候,我们需要判断一个元素是否存在于已有数据中(以此来获得非重复值),这时候,使用isset来判断会比in_array快得多很多!!

测试

1)准备测试数据

$exists_a = [];
$exists_b = [];
$check = []; for ($i=0,$len=100000; $i<$len; $i++)
{
$check[] = $i;
} for ($i=0,$len=10000; $i<$len; $i++)
{
$rnd = round(0,100000);
$exists_a[] = $rnd;
$exists_b[$rnd] = 1;
}

2)使用in_array做判断验证

$result     = [];
$start_time = microtime(true);
foreach ($check as $key => $value)
{
if (!in_array($value, $exists_a))
{
$result[] = $value;
}
}
$end_time = microtime(true);
echo '使用in_array验证元素是否存在耗时:' . ($end_time - $start_time), '秒<hr/>';

结果:// 使用in_array验证元素是否存在耗时:10.537812948227秒

3)使用isset做判断验证

$result     = [];
$start_time = microtime(true);
foreach ($check as $key => $value)
{
if (!isset($exists_b[$value]))
{
$result[] = $value;
}
}
$end_time = microtime(true);
echo '使用isset验证元素是否存在耗时:' . ($end_time - $start_

结果:// 使用isset验证元素是否存在耗时:0.018424034118652秒

补充

使用 array_key_exists 判断

<?php
$exists = [];
$check = []; for ($i=0,$len=100000; $i<$len; $i++)
{
$check[] = $i;
} for ($i=0,$len=10000; $i<$len; $i++)
{
$rnd = round(0,100000);
$exists[$rnd] = $rnd;
} $result = [];
$start_time = microtime(true);
foreach ($check as $key => $value)
{
if (array_key_exists($value, $exists))
{
$result[] = $value;
}
}
$end_time = microtime(true);
echo '使用array_key_exists验证元素是否存在耗时:' . ($end_time - $start_time), '秒<hr/>';
?>

结果:// 使用array_key_exists验证元素是否存在耗时:0.022138833999634秒

总结

尽量少用in_array,isset 和 array_key_exists 会比 in_array 快得多很多!!

判断元素是否存时,使用isset会比in_array快得多的更多相关文章

  1. javascript判断元素存在和判断元素存在于实时的dom中的方法

    今天(周六)下午我在公司加班时不知道要干什么,就打开公司的一个wordpress项目网站,想看下之前自己做的一个网页是否有问题. 打开网站首页,我习惯性的打开了chrome的调试工具,然后鼠标开始滚动 ...

  2. 判断元素16种方法expected_conditions

    前言 标签(空格分隔): 判断元素 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_condition ...

  3. javascript和jquery如何判断元素是否存在最佳。

    在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById(&q ...

  4. 判断元素(expected_conditions)

    判断元素 如何判断一个元素是否存在,如何判断 alert 弹窗出来了,如何判断动态的元素等等一系列的判断,在 selenium 的 expected_conditions 模块收集了一系列的场景判断方 ...

  5. selenium常用的API(七)判断元素是否可见

    web页面不可见的元素虽不在页面上显示,但是存在于DOM树中,这些元素webdriver也能找到. element.is_displayed()方法可以判断元素是否在页面上显示,如果显示返回True, ...

  6. 如何判断元素是否在可视区域ViewPort

    个性签名: 生如夏花,逝如冬雪:人生如此,何悔何怨. 前言: 经常需要计算元素的大小或者所在页面的位置,offsetWidth,clientWidth,scrollWidth,scrollTop这几个 ...

  7. pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作

    1)指定行索引和列索引标签 index 属性可以指定 DataFrame 结构中的索引数组,  columns 属性可以指定包含列名称的行, 而使用 name 属性,通过对一个 DataFrame 实 ...

  8. JQuery判断元素是否存在

    JQuery判断元素是否存在的原理与javascript略有不同,因为$选择器选择的元素无论是否存在都不会返回null或undefined,要使用JQuery判断元素是否存在,只能使用length属性 ...

  9. jQuery如何判断元素是否是隐藏的?

    jQuery函数简介: is(expr) 用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true. 如果没有元素符合,或者表达式无效,都返回'false'. 注 ...

随机推荐

  1. matlab std函数 用法及实例

    MATLAB常常用到std函数来进行标准差计算,下面我就通过实例介绍一下 matlab std函数怎么用. 1. std函数是用来计算标准偏差的一个函数,由于其有不同的参数,我们就用下面的例子进行介绍 ...

  2. PHP判断字符串的包含

    PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用.PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过ex ...

  3. oracle中merge into用法解析

    merge into的形式: MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] an ...

  4. 如何利用jsp实现防盗链功能

    index.jsp ----------------------------- Place your content here here is index jsp get header info a. ...

  5. oracle PLSQL基础学习

    --oracle 练习: /**************************************************PL/SQL编程基础************************** ...

  6. C# 计算代码运行时间

    Stopwatch watch = new Stopwatch(); watch.Start(); int num = myhelper.MySQLExecuteNonQuery(comlist); ...

  7. 嵌入式开发之hi3516---GV7601 SPI通信问题

    http://blog.csdn.net/qq_29350001/article/details/52669964 http://blog.csdn.net/zqj6893/article/detai ...

  8. 一款标注颜色,距离的小软件 markman

    长度标记   坐标和矩形标记   色值标记   文字标记   长度自动测量   标记拖拽删除   支持多种图片格式 支持PSD(需用最大兼容保存).PNG.BMP.JPG格式 设计稿自动刷新 在标注的 ...

  9. C# 最小化到托盘,托盘右击菜单显示

    添加notifyIcon控件,并添加Icon,否则托盘没有图标(托盘右键菜单也可直接在属性里添加): 主要的代码: public partial class Form1 : Form { #regio ...

  10. 绚丽而实用的jQuery/CSS3应用及源码

    HTML5加入WEB以后,网页世界就变得丰富绚丽起来了,但是我们在项目应用中,不仅需要绚丽的动画效果,而且更需要有实用的价值.今天分享的一些jQuery/CSS3应用不仅绚丽,而且还比较实用,如果感兴 ...