Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在_array()或大型(如果有条件)中使用更快?_Php_Arrays - Fatal编程技术网

Php 在_array()或大型(如果有条件)中使用更快?

Php 在_array()或大型(如果有条件)中使用更快?,php,arrays,Php,Arrays,我在循环中检查一个字符串是否等于另一个字符串。简单的东西 然而,我似乎一直在添加要检查的字符串,并且在每个循环中都有十个不同的字符串要检查。在代码方面,只需创建一个字符串数组进行检查,然后在_数组中执行操作,就更容易了;,但我想知道哪一个会解析得更快,使用更少的系统资源 排列 字符串!=串 差异可能可以忽略不计,只是为了将来参考。使用第一个。速度上不会有太大差别,但可读性才是真正的差别 CPU周期很便宜。程序员的工作时间不是很长。使用第一个。速度上不会有太大差别,但可读性才是真正的差别 CPU周

我在循环中检查一个字符串是否等于另一个字符串。简单的东西

然而,我似乎一直在添加要检查的字符串,并且在每个循环中都有十个不同的字符串要检查。在代码方面,只需创建一个字符串数组进行检查,然后在_数组中执行操作,就更容易了;,但我想知道哪一个会解析得更快,使用更少的系统资源

排列

字符串!=串


差异可能可以忽略不计,只是为了将来参考。

使用第一个。速度上不会有太大差别,但可读性才是真正的差别


CPU周期很便宜。程序员的工作时间不是很长。

使用第一个。速度上不会有太大差别,但可读性才是真正的差别


CPU周期很便宜。程序员的工作时间并非如此。

内置函数总是更快,因为它们是用C代码编译的。必须对PHP代码进行解释

如果您真的关心CPU周期,isset是最快的,所以将可能的值设置为数组键将是最快的方法。当然,CPU和内存的使用是有区别的,所以哪种使用更少的系统资源取决于您想要保存哪些资源


正如@Kendall-Frey所说,这是一种微观优化,所以请保持代码可读性,不要做任何优化工作,除非profiler显示此代码对执行有很大影响。

内置函数总是更快,因为它们是用C代码编译的。必须对PHP代码进行解释

如果您真的关心CPU周期,isset是最快的,所以将可能的值设置为数组键将是最快的方法。当然,CPU和内存的使用是有区别的,所以哪种使用更少的系统资源取决于您想要保存哪些资源


正如@Kendall Frey所说,这是微观优化,所以保持代码可读性,不要做任何优化工作,除非profiler显示此代码对执行有很大影响。

如果$hideme数组变大,最简单的解决方案可能是最快的扩展方法是使用isset

$hideme  = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
 "style.css", "highlighter.css", "highlighter.js", "users");

if (!isset($hideme[$sub])) {
    // $sub is not in $hideme
}

对于小型阵列,in_阵列工作正常,但通常较慢,如果阵列较大,可能会变得太慢。

如果$hideme阵列变大,最简单的解决方案可能也是最快的扩展方案是使用isset

$hideme  = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
 "style.css", "highlighter.css", "highlighter.js", "users");

if (!isset($hideme[$sub])) {
    // $sub is not in $hideme
}

对于小型阵列,in_阵列工作正常,但通常较慢,如果阵列较大,可能会变得太慢。

不用担心。对于小n,阵列的速度会慢得可以忽略,例如,这无关紧要。别担心。。对于较大的n,一个集合将显著更快。在这两种情况下,对于上面的任意n,例如2-3,使用数组/集合将导致更干净的代码。不要担心。对于小n,阵列的速度会慢得可以忽略,例如,这无关紧要。别担心。。对于较大的n,一个集合将显著更快。在这两种情况下,对于上面的任意n,例如2-3,使用数组/集合将产生更干净的代码。
$hideme  = array(".", "..", "Thumb.db", "index.php", "icons", "index_backup.php",
 "style.css", "highlighter.css", "highlighter.js", "users");

if (!isset($hideme[$sub])) {
    // $sub is not in $hideme
}