【问题标题】:PHP Search values in array - Return true if all are numbers, false if notPHP 在数组中搜索值 - 如果都是数字,则返回 true,否则返回 false
【发布时间】:2012-04-01 06:41:40
【问题描述】:

好的,这里的愚蠢问题...只是尝试在数组中进行搜索以确保所有值都是数字,如果不是,我需要返回 false。最快的方法是什么。这个数组可能很大。顺便说一句,它不是一个多维数组,并且其中没有任何子数组。它只是一个一级数组...示例:

array(1, 5, 6, 2, 44, 92, 50, string);

这应该返回 false,因为字符串是数组中的值之一,而不是数字。我的意思是,有没有比在数组上使用foreach 并在每个值上使用intval 更快的方法??

谢谢大家:)

【问题讨论】:

    标签: php arrays search


    【解决方案1】:

    你可以使用is_numeric函数——

    $count = count($your_array);
    
    for($index=0; $index<$count; $index++)
    {
        if( !is_numeric($your_array[index]) )
            return false;
    }
    

    【讨论】:

    • is_numeric 正在检查数组
    • @tttony:抱歉,忘记索引了。感谢您指出!
    • 谢谢,我想我会选择这个,因为它的投票最多。没有冒犯的家伙。
    【解决方案2】:
      if(in_array(false, array_map("is_numeric", array(1, 2, 3, 4, 5, "string"))))
        return false;
    

    我没有研究过性能,抱歉。但这些是内置函数,据称比任何自定义函数都快...

    【讨论】:

    • 以前没见过这个功能。不错的信息,这应该是最好的解决方案。
    【解决方案3】:
    foreach($array as $value)
    {
        if(!is_numeric($value))
        {
           return false;
        }
    }
    

    【讨论】:

    • 为什么要把大括号放在第 3 行?
    • 这是一个简写 if 语句,即 (condition ? true : false),但在这种情况下不起作用。好久没用了。
    猜你喜欢
    • 2022-12-04
    • 2019-11-23
    • 2010-09-26
    • 1970-01-01
    • 2018-01-04
    • 2013-02-10
    • 2018-10-22
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多