ddxiami

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3284|回复: 9

[细说PHP] 第9章PHP中的数组与数据结构--数组的相关处理函数(一)

[复制链接]
发表于 2013-8-5 13:56:29 | 显示全部楼层 |阅读模式
函数array_values():返回数组中所有元素的值。

<?php
        $contact = array(
                        "ID" => 1,
                        "姓名" => "高某",
                        "公司" => "A公司",
                        "地址" => "北京市",
                        "电话" => "(010)98765432"
        );
        
        //array_values()函数传入数组$contact重新索引返回一个新数组
        print_r( array_values($contact) );           
        print_r( $contact );       //原数组$contact内容元素不变
?>
回复

使用道具 举报

 楼主| 发表于 2013-8-5 14:32:09 | 显示全部楼层
函数array_keys():返回数组中所有键名。

<?php
    $lamp = array("a"=>"Linux","b"=>"Apache","c"=>"MySQL","d"=>"PHP" );  
        print_r( array_keys($lamp) );          //输出:Array ( [0] => a [1] => b [2] => c )
        print_r( array_keys($lamp,"Apache") ); //使用第二个可选参数输出:Array ( [0] => b)

        $a = array(10, 20, 30, "10");          //声明一个数组,其中元素的值有整数10和字符串”10”
        print_r( array_keys($a,"10",false) );  //使用第三个参数 (false)输出:Array ( [0] => 0 [1] => 3 )
       
        $a = array(10, 20, 30, "10");          //声明一个数组,其中元素的值有整数10和字符串”10”
        print_r( array_keys($a,"10",true) );   //使用第三个参数 (true)输出:Array ( [0] => 3)       

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:33:43 | 显示全部楼层
函数in_array():检查数组中是否存在某个值,即在数组中搜索给定的值。前两个参数为必须,最后一个是可选参数。

<?php
    //in_array()函数的简单使用形式
        $os = array("Mac", "NT", "Irix", "Linux");
               
        if(in_array("Irix", $os)) {                                 //这个条件成立,字符串Irix在数组$os中
            echo "Got Irix";
        }
       
        if(in_array("mac", $os)) {                                  //这个条件失败,因为 in_array()是区分大小写的
            echo "Got mac";
        }

        //in_array() 严格类型检查例子
        $a = array('1.10', 12.4, 1.13);

        //第三个参数为true,所以字符串'12.4'和浮点数12.4类型不同
        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";
        }

        //in_array()中还可以用数组当做第一个参数作为查询条件
        $a = array(array('p', 'h'), array('p', 'r'), 'o');

        if (in_array(array('p', 'h'), $a)) {                //数组array('p', 'h')在数组$a中存在
                    echo "'ph' was found\n";
        }
       
        if (in_array(array('h', 'p'), $a)) {                //数组array('h', 'p')不存在数组$a中
                    echo "'hp' was found\n";
        }

       
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:35:53 | 显示全部楼层
函数array_search():搜索给定的值,存在则返回相应的键名,也支持对数据类型的严格判断。

<?php
        $lamp = array( "a" => "Linux","b" => "Apache","c" => "MySQL","d" => "PHP" );  
        echo array_search("PHP", $lamp);         //输出:d(在数组$lamp中,存在字符串"php"则输出下标d)

        $a = array( "a" => "8", "b" => 8,"c" => "8" );
        echo array_search(8,$a,true);                  //输出:b(严格按类型检索,整型8对应的下标为b)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:39:14 | 显示全部楼层
函数array_key_exists():检查给定的键名或索引是否存在于数组中。

<?php
        $search_array = array('first' => 1, 'second' => 4);   //声明一个关联数组,其中包含两个元素
        
        if (array_key_exists('first', $search_array)) {             //检查下标为first对应的元素是否在数组中
                   echo "键名为'first'的元素在数组中";
        }
        
        $search_array = array('first' => null, 'second' => 4);//声明一个关联数组,第一个元素的值为NULL

        isset($search_array['first']);                                             //用isset()检索下标first的元素返回false  
        array_key_exists('first', $search_array);                           //用array_key_exists()检索下标first返回true


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:42:52 | 显示全部楼层
函数array_flip():交换数组中的键和值。

<?php
        $lamp = array("OS"=>"Linux","WebServer"=>"Apache","Database"=>"MySQL", "Language"=>"PHP");

        //输出:Array ( [Linux] => OS [Apache] => WebServer [MySQL] => Database [PHP] => Language )
        print_r( array_flip($lamp) );                          //使用array_flip()函数交换数组中的键和值

        //在数组中如果元素的值相同,则使用array_flip()会发生冲突
        $trans = array("a" => 1, "b" => 1, "c" => 2);
        print_r( array_flip($trans) );              //现在 $trans 变成了: Array( [1] => b [2] => c)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:45:18 | 显示全部楼层
函数array_reverse():将原数组中的元素顺序翻转,创建新的数组并返回。

<?php
        $lamp = array("OS"=>"Linux", "WebServer"=>"Apache", "Database"=>"MySQL", "Language"=>"PHP");
       
        //使用array_reverse()函数将数组$lamp中元素的顺序翻转
        print_r(array_reverse($lamp));                          
       
        /* 输出结果Array ([Language]=>PHP [Database]=>MySQL [WebServer]=>Apache [OS]=>Linux) */
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:48:04 | 显示全部楼层
函数count():计算数组中的元素数目或对象中的属性个数。

<?php
        $lamp = array( "Linux", "Apache", "MySQL", "PHP" );
        echo count( $lamp );                         //输出数组的个数为:4
   
    //声明一个二维数组,统计数组中元素的个数
        $web = array(
                        'lamp'  => array('Linux', 'Apache', 'MySQL','PHP'),   
            'j2ee'  => array('Unix', 'Tomcat','Oracle','JSP')
                );

        echo count( $web, 1 );                         //第二个参数的模式为1则计算多维数组的个数,输出10
        echo count( $web );                          //默认模式为0,不计算多维数组的个数,输出2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:49:29 | 显示全部楼层
函数array_count_values():用于统计数组中所有值出现的次数。

<?php
        $array = array( 1, "php", 1, "mysql", "php" );  //声明一个带有重复值的数组
       
        $newArray = array_count_values( $array );            //统计数组$array中所有值出现的次数
       
        print_r( $newArray );                                     //输出:Array([1] => 2 [php] => 2 [mysql] => 1)




回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 14:51:06 | 显示全部楼层
函数array_unique():用于删除数组中重复的值,并返回没有重复值的新数组。

<?php
        $a = array("a"=>"php","b"=>"mysql","c"=>"php");        //声明一个带有重复值的数组
        print_r(array_unique($a));                                                 //删除重复值后输出:Array ([a] => php [b] => mysql)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|技术文档库 ( 闽ICP备15017263号-2 )|网站地图

GMT+8, 2025-5-18 22:18 , Processed in 0.036158 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表