当前位置:  编程技术>php
本页文章导读:
    ▪php数组函数in_array()检查数组中是否存在某值      本节内容: php数组函数in_array()的用法 bool in_array ( mixed $needle, array $haystack [, bool $strict] ) 在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。  如果第三个参数 strict 的值为 TRUE 则 .........
    ▪php快速查找数组array最大值的实例代码      本节内容: 快速查找数组array最大值 例如,以下方法均能返回数组最大值:   代码示例: <?php function kmax1($a) {     return array_search(max($a), $a); } function kmax2($a) {     $m = max($a);     r.........
    ▪PHP查找数组中最大值与最小值的二个例子      本节内容: 查找php数组的最大值与最小值 例子:   代码示例: <?php /** * 在php数组中,查找最大值与最小值 * by www. */      function maxMin(Array $arr) {          $cmpTime = 0;        .........

[1]php数组函数in_array()检查数组中是否存在某值
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php数组函数in_array()的用法
bool in_array ( mixed $needle, array $haystack [, bool $strict] )

在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。 

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 

注意: 如果 needle 是字符串,则比较是区分大小写的。 
注意: 在 PHP 版本 4.2.0 之前,needle 不允许是一个数组。 

例1,in_array()的简单用法。
 

代码示例:
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?> 
 

输出: Got Irix

例2,严格类型检查的in_array()用法。
 

代码示例:
<?php
$a = array('1.10', 12.4, 1.13);
if (in_array('12.4', $a, true)) {
    echo "'12.4' found with strict check/n";
}
if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict check/n";
}
?> 
 

输出: 1.13 found with strict check 

例3,用数组作为 needle 的用法。
 

代码示例:
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was found/n";
}
if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was found/n";
}
if (in_array('o', $a)) {
    echo "'o' was found/n";
}
?> 
 

输出:
'ph' was found
'o' was found

您可能感兴趣的文章:
php中IN_ARRAY函数的注意事项
php数组入门教程之in_array()函数
php数组函数 in_array 的用法及注意事项
php in_array用法一例
php数组函数 in_array() 查找数组中是否存在指定值


    
[2]php快速查找数组array最大值的实例代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
快速查找数组array最大值

例如,以下方法均能返回数组最大值:
 

代码示例:
<?php
function kmax1($a)
{
    return array_search(max($a), $a);
}
function kmax2($a)
{
    $m = max($a);
    return array_search($m, $a);
}
$a = array();
for($i = 0; $i < 2000; $i++)
{
    $a[] = 100 / rand(1, 10000);
}
for($i = 0; $i < 1000; $i++)
{
    $b = kmax1($a);
    unset($b);
}
for($i = 0; $i < 1000; $i++)
{
    $b = kmax2($a);
    unset($b);
}
 

以上的两种方法均可找到数组(2000随机浮点数)里的最大值,但是kmax1是通过max()直接把值插入到array_search(),而kmax2是把值存储到一个独立的变量$m里。
对于array_search的理解,它可能是在kmax1(类似for循环中sizeof()分类)里执行max()多次,所以写了这个代码。

结果:
 

0.21546792984009
0.22647905349731

第2种方式稍微慢一点,因为首先把值分配给了一个变量?

执行50次发现,并不是每次都是第一个方法快。
如下是前6次的执行结果。
 

0.17937803268433
0.17579483985901

0.18131899833679
0.21023297309875

0.16258692741394
0.16793894767761

0.24772715568542
0.2319028377533

0.2322998046875
0.22303509712219

0.21346497535706
0.19454884529114


    
[3]PHP查找数组中最大值与最小值的二个例子
    来源: 互联网  发布时间: 2013-12-24

本节内容:
查找php数组的最大值与最小值

例子:
 

代码示例:
<?php
/**
* 在php数组中,查找最大值与最小值
* by www.
*/
     function maxMin(Array $arr) {
         $cmpTime = 0;
         $count = count($arr);
         $big = $small = $arr[0];
         for($i = 1; $i < $count; $i++) {
             $cmpTime++;
             if($big > $arr[$i]) {
                 $cmpTime++;
                 if($small > $arr[$i]) {
                     $small = $arr[$i];
                 }
             } else {
                 $big = $arr[$i];
             }
         }
        
         echo "ArrLeng: " . $count . "<br>";
         echo "CmpTime: " . $cmpTime . "<br>";
         echo "Big: " . $big . "<br>";
         echo "Small: " . $small . "<br>";
     }
    
     $arr = array(4, 6, 8, 1, 5, 4, 3, 9, 11, 3, 22, 100, 55, 0, 4, -1, 31, 210, -10);
     maxMin($arr);
 ?>
 

输出结果:
ArrLeng: 19
CmpTime: 29
Big: 210
Small: -10
说明:以上代码在查找时,比较是n次,而最坏时会2n次。

接下来分享一个稳定的1.5n次比较的方法,代码:
 

代码示例:

<?php
/**
* 在php数组中,查找最大值与最小值
* by www.
*/
     function maxMin(Array $arr) {
         $cmpTime = 0;
         $count = count($arr);
         $biggest = $smallest = $arr[$count - 1];
         #每次取出两个元素,比较两个元素的大小再与最大值和最小值比较
         for($i = 0; $i < $count - 1; $i += 2) {
             $cmpTime++;
             if($arr[$i] > $arr[$i + 1]) {
                $bigger = $arr[$i];
                $smaller = $arr[$i + 1];
             } else {
                $bigger = $arr[$i + 1];
                $smaller = $arr[$i];  
             }
             $cmpTime++;   
             if($bigger > $biggest) {
                 $biggest = $bigger;
             }
             $cmpTime++;
             if($smaller < $smallest) {
                $smallest = $smaller;
             }
         }

         echo "ArrLeng: " . $count . "<br>";
         echo "CmpTime: " . $cmpTime . "<br>";
         echo "Big: " . $biggest . "<br>";
         echo "Small: " . $smallest . "<br>";
     }
    
     $arr = array(4, 6, 8, 1, 5, 4, 3, 9, 11, 3, 22, 100, 55, 0, 4, -1, 31, 210, -10);
     maxMin($arr);
 ?>
 

输出结果:
ArrLeng: 19
CmpTime: 27
Big: 210
Small: -10


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php字符串函数的简单示例代码 iis7站长之家
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3