欢迎访问宙启技术站
智能推送

PHP中使用过的一些常见的数组函数

发布时间:2023-06-16 10:23:07

在PHP中,数组是非常重要和基础的数据结构之一,PHP提供了很多数组相关的函数来实现各种操作。在实际开发中,我们经常会对数组进行各种操作,如查询、排序、合并、过滤等等。本文将介绍一些常见的数组函数,帮助大家更好地熟悉和掌握数组的操作。

1. count()函数

count()函数用于返回数组的长度,也就是元素的个数。语法如下:

count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int

其中,第一个参数可以是数组或任何Countable对象。第二个参数是可选的,可以是一个常量,它可以影响函数的行为。默认情况下,它是COUNT_NORMAL,表示返回数组中元素的个数,如果指定为1(或COUNT_RECURSIVE),则递归地计算多维数组中所有元素的总数。例如:

$arr = array('a','b','c');

echo count($arr); //输出3

2. array_diff()函数

array_diff()函数用于返回两个数组之间的差异。语法如下:

array_diff ( array $array1 , array $array2 [, array $... ] ) : array

其中,第一个参数是源数组,第二个参数是要比较的数组,后续的参数是可选的,可以是一个或多个数组。此函数返回第一个数组中与其他数组不同的元素。例如:

$array1 = array('a','b','c','d');

$array2 = array('c','d','e','f');

$result = array_diff($array1, $array2);

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

3. array_filter()函数

array_filter()函数用于返回数组中所有满足条件的元素。语法如下:

array_filter ( array $array [, callable $callback = "" [, int $flag = 0 ]] ) : array

其中,第一个参数是要过滤的数组,第二个参数是可选的,是一个回调函数,用来检测每个元素是否保留,如果返回true,则保留元素,否则过滤掉。第三个参数也是可选的,是一个标志,用来指定回调函数中传递给它的参数的类型。例如:

$arr = array(-1, 0, 1, 2, -2);

$result = array_filter($arr, function($element) {

    return $element > 0;

});

print_r($result); //输出:Array ( [2] => 1 [3] => 2 )

4. array_key_exists()函数

array_key_exists()函数用于检查数组中是否存在指定的键名。语法如下:

array_key_exists ( mixed $key , array $array ) : bool

其中,第一个参数是要检查的键名,第二个参数是要检查的数组。如果指定的键名在数组中存在,则返回true,否则返回false。例如:

$arr = array("name"=>"Tom", "age"=>20);

if(array_key_exists("age",$arr)) {

    echo "存在";

} else {

    echo "不存在";

}

5. array_merge()函数

array_merge()函数用于将两个或多个数组合并成一个数组。语法如下:

array_merge ( array $array1 [, array $... ] ) : array

其中,第一个参数是要合并的主数组,后续的参数是可选的,是要合并到主数组的一个或多个数组。如果两个或多个数组中具有相同的键,则后来的键将覆盖原来的。例如:

$array1 = array("a" => "red", "b" => "green");

$array2 = array("b" => "blue", "c" => "yellow");

$result = array_merge($array1, $array2);

print_r($result); //输出:Array ( [a] => red [b] => blue [c] => yellow )

6. array_push()函数和array_pop()函数

array_push()函数用于在数组的末尾添加一个或多个元素,而array_pop()函数用于从数组的末尾删除一个元素。它们的语法如下:

array_push ( array &$array , mixed $... ) : int

array_pop ( array &$array ) : mixed

其中,第一个参数是要添加或删除元素的数组,在array_push()中,后续的参数是要添加的一个或多个元素。在array_pop()中,不需要传递任何参数。这两个函数操作的是同一个数组,在array_push()中添加的元素将会在array_pop()中删除。例如:

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

array_push($arr, 4, 5);

print_r($arr); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

array_pop($arr);

print_r($arr); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

7. array_reverse()函数

array_reverse()函数用于翻转数组的顺序,使原先的最后一个元素变为第一个,第一个变为最后一个,以此类推。语法如下:

array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) : array

其中,第一个参数是要翻转的数组,第二个参数是可选的,如果设置为true,则将键名保留在翻转后的数组中,否则键名将被重置。例如:

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

$result = array_reverse($arr);

print_r($result); //输出:Array ( [0] => 3 [1] => 2 [2] => 1 )

8. in_array()函数

in_array()函数用于在数组中查找指定的值,并返回是否找到。语法如下:

in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool

其中,第一个参数是要查找的值,第二个参数是要查找的数组,第三个参数是可选的,如果设置为true,则使用严格比较(类型和值都要相等),否则使用松散比较(只比较值)。例如:

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

if (in_array("b", $arr)) {

    echo "找到了";

} else {

    echo "没有找到";

}

9. sort()函数和rsort()函数

sort()函数用于对数组进行升序排列,即从小到大排序,而rsort()函数用于对数组进行降序排列,即从大到小排序。它们的语法如下:

sort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool

其中,第一个参数是要排序的数组,在sort()中表示升序排序,在rsort()中表示降序排序。第二个参数也是可选的,可以是一个常量,用来指定排序的方式(默认是SORT_REGULAR,表示普通排序)。例如:

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

sort($arr);

print_r($arr); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 )

rsort($arr);

print_r($arr); //输出:Array ( [0] => 3 [1] => 2 [2] => 1 )

10. array_slice()函数

array_slice()函数用于返回数组的一个片段,用来提取出需要的一部分数据。语法如下:

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] ) : array

其中,第一个参数是要处理的数组,第二个参数是指定从哪个位置开始提取(从0开始计数),第三个参数是可选的,用来指定提取的长度,不指定则提取到数组末尾。第四个参数也是可选的,如果将其设置为true,则保留原数组中的键名。例如:

$arr =