PHP中对数组进行操作的常用函数总结

PHP中,对数组的操作是非常常见的,所以,掌握一些常用且重要的数组操作函数尤其重要。现将一些本人认为较为重要的函数总结如下:

1.创建数组使用的是array(),如:

<?php

$a = array("a","b");   //当然还有其他一些基础的创建数组的方法,比如使用键值,二维数组等,这里就不再赘述

?>

2.array_values()  返回数组的所有值,但不包括数组的键值。返回的是以数字为键值的数组,从0开始。如:

<?php

$arr = array("name1"=>"aa","name2"=>"bb","name3"=>"cc");     //此数组在以下可能用到,不在赘述

print_r(array_values($arr));   //输出为   Array ( [0]=>aa  [1]=>bb  [2]=>cc )

?>

3.array_keys()  返回数组的键名,以数字为键值的数组形式,从0开始。如:

<?php

print_r(array_keys($arr));    //输出为   Array ( [0]=>name1  [1]=>name2  [2]=>name3 )

?>

4.array_flip()  将数组中的值和键进行互换,如果反转后的数组的值有相同的,那么只取最后一个值。如:

<?php

print_r(array_flip($arr));   //将会输出   Array ( [aa]=>name1  [bb]=>name2  [cc]=>name3 )

?>

5.array_search(values,array)   在数组中搜索某个值并返回此值的键名。如:

<?php

echo array_search("bb",$arr);   //将会输出值为bb的键名,为name2

?>

6.array_reverse()  将数组中的元素倒叙,返回值为倒叙之后的数组。如:

<?php

print_r(array_reverse($arr));   //会输出   Array ( [name3]=>cc  [name2]=>bb  [name1]=>aa )

?>

7.in_array(search,array,type)  在数组中搜索是否存在相应的值,如果找到返回true,否则返回false。参数说明:search为要搜索的值;array是被搜索的数组;type为搜索类型,为true时是区分大小写和类型。如:

<?php

$a = array("abc","123","fg");

echo in_array("123",$a);    //能找到123,返回true

?>

8.array_key_exists(key,array)  检查相应的key值是否在数组中,如果在返回true,不在返回false。如:

<?php

echo array_key_exitsts("name2",$arr);   //会输出true

?>

9.array_count_values()   是统计数组中所有值出现的次数,返回一个数组,数组的键名为原数组的值,键值为出现的次数。如:

<?php

$a = array("A","asd","A","abc");

print_r(array_count_values($a));   //输出结果为  Array ( [A]=>2  [asd]=>1  [abc]=>1 )

?>

10.array_slice(array,start,length,preserve)  根据条件取出数组中的一段值。参数说明:array是要处理的数组;start是从数组的第几个元素开始(包括此元素,为负数时是从末尾从1开始数);length是取出的长度(为负数时是从末尾开始数,从前向后取到数到的那个数终止);preserve为true时是保留键名。为false时为重置键名,默认为false。如:

<?php

$a = array("as","cd","ks","we","ig");

print_r(array_slice($a,1,2));   //会输出  Array ( [0]=>cd  [1]=>ks )

?>

11.array_splice(array1,start,length,array2)  从数组中移除相应的元素,并用新元素替换它,其中键名会被重新设为数字键名,从0开始,原来的键名不变。返回值为被移除的数组。参数说明:array1是要被替换的数组;start是从哪里开始;length是要替换的元素的长度(为0时就在相应的位置插入,为负数时就从最后数,从前向后到此为止);array2是替换为的元素数组。如:

<?php

$a1 = array("a"=>"red","b"=>"blue","c"=>"black");

$a2 = array("d"=>"pur","e"=>"ss");

print_r(array_splice($a1,0,2,$a2));   //会输出 Array ( [a]=>red  [b]=>blue )

print_r($a1);   //会输出 Array ( [0]=>pur  [1]=>ss [c]=>black )

?>

12.array_chunk(array,size,preserve_key)    把数组分割为新的数组块,最后一个块可能会少一些。参数说明:array是要分割的数组;size是分割的大小;preserve_key为是否保持原来数组的键名,默认为false,即使用新的数字键名从0开始。如:

<?php

$a = array("a","b","c","d","e");

print_r(array_chunk($a,2));    //输出为 Array ( [0]=>Array( [0]=>a [1]=>b)   [1]=>Array([0]=>c [1]=>d)  [2]=>Array([0]=>e))   这个看着可能有点晕,其实类似于二维数组,以数组为元素的数组

?>

13.array_push()  (进栈)向数组的尾部添加一个或多个元素,相当于多次调用$array[]=$values,添加进去的元素的键名为从0开始的数字键名。返回值为新数组的长度。<如果是单纯地向数组中添加元素,使用$array[]=$values更好,因为没有函数调用>。如:

<?php

    $a = array("a","b","c");

    array_push($a,"d","e");

    print_r($a);   //会输出  Array ( [0]=>a [1]=>b [2]=>c [3]=>d [4]=>e )

?>

14.array_pop()  (出栈)从数组的中删除最后一个元素,如:

<?php

    $a = array("a","b","c");

    array_pop($a);

    print_r($a);   //输出为  Array ([0]=>a  [1]=>b  [2]=>c )

?>

15.array_shift()  删除数组的第一个元素,返回值为被删除数组的值。<如果键名是数字,那么元素会重新获得数字键名,从0开始>。如:

<?php

    $a = array(0=>"a",1=>"b",2=>"c");

    echo array_shift($a);   //会输出a

    print_r($a);   //输出为  Array ([0]=>b  [1]=>c )

?>

16.array_unshift()   向数组的头部插入一个或多个元素,键名为从0开始的数字键名,原数组字符串的的键名不变。返回值为新数组的元素的个数。如:

 

<?php

    $a = array(0=>"a",1=>"b",2=>"c");

    echo array_unshift($a,"d","e");   //会输出5

    print_r($a);   //输出为  Array ([0]=>a  [1]=>b [2]=>c [3]=>d [4]=>e )

?>

17.array_sum()   返回数组中值的和。如:

 

<?php

    $a = array(1,2,3);

    echo array_sum($a);   //会输出6

?>

18.对数组进行排序的相关函数:

 

    sort($arr);       //由小到大,忽略键名       rsort($arr);      //由大到小,忽略键名         ksort($arr);     //按照键名正序排序           
    asort($arr);     //由小到大,保留键名       arsort($arr);    // 由大到小,保留键名         krsort($arr);   // 按照键名逆序排序
    

数组是很常用的,所以有必要记住一些常用的函数,以上的整理不是太全面,其他请参考PHP手册。

posted on 2017-06-04 20:35  BIG东  阅读(216)  评论(0编辑  收藏  举报