`
ycmhn
  • 浏览: 23627 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于in_array函数

阅读更多
   今天写一个分析sql的函数,需要把里面的字段值等分析出来。
   字符串好分析,就分析两端的引号即可, 数字(整数和浮点数)就有点麻烦了,用了一个简单的状态机。
   字符串的取得老早就正确了,但是数字的结果老是错误的,
   其实就是没取得数字,我就很纳闷,把if到符合数字部分的字符全打印了出来。
   结果除了前面正确截取的字符串段,其他的都打印出来了,我简直要怀疑我是不是echo的位置打错了。
   那地方的代码是这样
...
$digits=range(0,9);
...
if(in_array($w,$digits)){
...
}

于是我怀疑是in_array函数的问题,于是我做了个实验
echo in_array('s',range(0,9));//结果是1

果然是它的问题,所有字符都是返回true的...
于是我自己写了一个
function inarray($enum,$array){
  foreach($array as $e){
    if($e==$enum){
      return true;
    }
  }
  return false;
}

结果还是一样的,这时我突然想到会不会是比较的时候类型不同所致
做了一个实验
echo 's'+0;//结果是0

可以猜想,php在字符串和数字比较的时候自动把字符串转换成数字,然后比较数值。而非0-9的其他字符则会被转换为0,所以所有的字符都返回true了。
想到这点,我有了思路,把上面函数稍微修改下就好了
function inarray($enum,$array){
  foreach($array as $e){
    if(($e.'')==$enum){
      return true;
    }
  }
  return false;
}

分享到:
评论

相关推荐

    js in_array函.html

    js的in_array函数

    PHP用法in_array函数检查数组中是否存在某个值_.docx

    **PHP in_array 函数详解** `in_array()`是PHP中一个非常实用的内置函数,用于在数组中查找指定的值。如果找到该值,它会返回`TRUE`,否则返回`FALSE`。这个函数在处理数据验证、过滤或判断元素是否存在于数组中时...

    PHP IN_ARRAY 函数使用注意事项

    这就解释了为什么在使用in_array函数时,尽管's'和0类型不同,但var_dump(in_array(0,array('s','ss')))的结果返回bool(true)。 为了应对PHP的这种类型转换问题,我们应当在比较时使用严格比较运算符===而不是非...

    JavaScript实现的in_array函数

    为了实现类似的功能,我们可以自定义一个`in_array`函数。以下是对这个自定义`in_array`函数的详细解释: 首先,我们需要定义一个函数`in_array`,它接受一个参数`arr`,即我们要检查的数组。在这个函数中,我们...

    php in_array 函数使用说明与in_array需要注意的地方说明

    关于 `in_array()` 函数的一些关键点: - **大小写敏感**:如果 `$needle` 是字符串,`in_array()` 的比较是区分大小写的。这意味着 "abc" 和 "ABC" 被视为不同的值。 - **版本限制**:在 PHP 4.2.0 之前的版本,`$...

    2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题

    然而,在处理大量数据时,原生的in_array函数可能会因为性能问题而变得效率低下。这是因为in_array是通过遍历数组的方式来查找值,当数组元素数量较多时,其时间复杂度为O(n),如果数组很大,就需要花费较多的时间...

    浅谈PHP array_search 和 in_array 函数效率问题

    为了提高效率,可以考虑使用`array_flip`函数结合`isset`来替代`array_search`和`in_array`。`array_flip`函数将数组中的键和值互换,这样就可以通过值来查找键,而无需遍历整个数组。使用`isset`检查值是否存在,其...

    PHP中in_array函数使用的问题与解决办法

    首先,`in_array`函数的基本语法是 `in_array(search, array, strict)`,其中`search`是要查找的值,`array`是被搜索的数组,`strict`是一个可选参数,用来指定是否启用严格模式进行类型匹配。默认情况下,`strict`...

    PHP函数in_array()使用详解

    以下是对`in_array()`函数的详细说明: **函数定义与返回值** `in_array(value, array, type)`函数接收三个参数: 1. `value`:这是你要在数组中搜索的值。 2. `array`:被搜索的数组,即你想要检查其中是否包含`...

    php中in_array函数用法探究

    1. 数据类型匹配规则:in_array函数在进行匹配时,如果设置$strict为false(默认情况),则当$needle是字符串而$haystack中的元素是数字,或者反之,函数仍会返回true。也就是说,in_array函数在非严格模式下,不会...

    php中in_array函数用法分析

    在本文中,将对in_array函数的用法进行详细分析,并结合实例讲解在使用这个函数时需要注意的一些细节,以便于读者更好地理解和应用。 首先,需要了解的是in_array函数的基本语法结构,它包含三个参数: 1. 第一个...

    类似php的js数组的in_array函数自定义方法

    以下就是如何自定义`in_array`函数的几种方法: **方法1:基础循环检查** 这是最直观和基础的实现方式,通过遍历数组并比较每个元素是否等于目标值。 ```javascript Array.prototype.in_array = function(e) { ...

    用js实现in_array的方法

    然而,我们可以通过自己编写函数来模拟in_array函数的功能。 以下是一些自定义的in_array函数的示例实现: 第一个示例函数名为`in_array`,它通过遍历数组来查找特定值。这个函数只接受字符串类型的参数。如果有...

    PHP使用in_array函数检查数组中是否存在某个值

    本文实例讲述了PHP使用in_array函数检查数组中是否存在某个值的方法。分享给大家供大家参考。具体分析如下: PHP使用in_array()函数检查数组中是否存在某个值,如果存在则返回 TRUE ,否则返回 FALSE了,非常的好用...

    PHP中in_array的隐式转换的解决方法

    最终,作者通过增加in_array函数的第三个参数为true来解决这个问题,确保只有在类型和值都匹配时,in_array才会返回true。 通过本文的学习,我们了解到了PHP中in_array函数使用时需要谨慎处理的隐式类型转换问题,...

    php提示Warning:mysql_fetch_array() expects的解决方法

    本文实例讲述了php提示Warning mysql_...mysql_fetch_array()函数导致的,下面我们一起来看问题解决方案,我的代码如下: 复制代码 代码如下:include(“conn.php”); if(!empty($_GET[‘id’])){  $sql=”select * fr

Global site tag (gtag.js) - Google Analytics