PHP 数组常用函数


数组常用函数


正文

PHP 5 Array 函数

函数     描述
array()     创建数组。
array_change_key_case()     返回其键均为大写或小写的数组。
array_chunk()     把一个数组分割为新的数组块。
array_column()     返回输入数组中某个单一列的值。
array_combine()     通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
array_count_values()     用于统计数组中所有值出现的次数。
array_diff()     比较数组,返回两个数组的差集(只比较键值)。
array_diff_assoc()     比较数组,返回两个数组的差集(比较键名和键值)。
array_diff_key()     比较数组,返回两个数组的差集(只比较键名)。
array_diff_uassoc()     比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。
array_diff_ukey()     比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
array_fill()     用给定的键值填充数组。
array_fill_keys()     用给定的指定键名的键值填充数组。
array_filter()     用回调函数过滤数组中的元素。
array_flip()     反转/交换数组中的键名和对应关联的键值。
array_intersect()     比较数组,返回两个数组的交集(只比较键值)。
array_intersect_assoc()     比较数组,返回两个数组的交集(比较键名和键值)。
array_intersect_key()     比较数组,返回两个数组的交集(只比较键名)。
array_intersect_uassoc()     比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。
array_intersect_ukey()     比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。
array_key_exists()     检查指定的键名是否存在于数组中。
array_keys()     返回数组中所有的键名。
array_map()     将用户自定义函数作用到给定数组的每个值上,返回新的值。
array_merge()     把一个或多个数组合并为一个数组。
array_merge_recursive()     递归地把一个或多个数组合并为一个数组。
array_multisort()     对多个数组或多维数组进行排序。
array_pad()     将指定数量的带有指定值的元素插入到数组中。
array_pop()     删除数组中的最后一个元素(出栈)。
array_product()     计算数组中所有值的乘积。
array_push()     将一个或多个元素插入数组的末尾(入栈)。
array_rand()     从数组中随机选出一个或多个元素,返回键名。
array_reduce()     通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
array_replace()     使用后面数组的值替换第一个数组的值。
array_replace_recursive()     递归地使用后面数组的值替换第一个数组的值。
array_reverse()     将原数组中的元素顺序翻转,创建新的数组并返回。
array_search()     在数组中搜索给定的值,如果成功则返回相应的键名。
array_shift()     删除数组中的第一个元素,并返回被删除元素的值。
array_slice()     返回数组中的选定部分。
array_splice()     把数组中的指定元素去掉并用其它值取代。
array_sum()     返回数组中所有值的和。
array_udiff()     比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。
array_udiff_assoc()     比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_udiff_uassoc()     比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。
array_uintersect()     比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。
array_uintersect_assoc()     比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
array_uintersect_uassoc()     比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。
array_unique()     删除数组中重复的值。
array_unshift()     在数组开头插入一个或多个元素。
array_values()     返回数组中所有的值。
array_walk()     对数组中的每个成员应用用户函数。
array_walk_recursive()     对数组中的每个成员递归地应用用户函数。
arsort()     对关联数组按照键值进行降序排序。
asort()     对关联数组按照键值进行升序排序。
compact()     创建一个包含变量名和它们的值的数组。
count()     返回数组中元素的数目。
current()     返回数组中的当前元素。
each()     返回数组中当前的键/值对。
end()     将数组的内部指针指向最后一个元素。
extract()     从数组中将变量导入到当前的符号表。
in_array()     检查数组中是否存在指定的值。
key()     从关联数组中取得键名。
krsort()     对关联数组按照键名降序排序。
ksort()     对关联数组按照键名升序排序。
list()     把数组中的值赋给一些数组变量。
natcasesort()     用"自然排序"算法对数组进行不区分大小写字母的排序。
natsort()     用"自然排序"算法对数组排序。
next()     将数组中的内部指针向后移动一位。
pos()     current() 的别名。
prev()     将数组的内部指针倒回一位。
range()     创建一个包含指定范围的元素的数组。
reset()     将数组的内部指针指向第一个元素。
rsort()     对数值数组进行降序排序。
shuffle()     把数组中的元素按随机顺序重新排列。
sizeof()     count() 的别名。
sort()     对数值数组进行升序排序。
uasort()     使用用户自定义的比较函数对数组中的键值进行排序。
uksort()     使用用户自定义的比较函数对数组中的键名进行排序。
usort()     使用用户自定义的比较函数对数组进行排序。

array_diff

/**
 * Computes the difference of arrays
 * @link https://php.net/manual/en/function.array-diff.php
 * @param array $array1 <p>
 * The array to compare from
 * </p>
 * @param array $array2 <p>
 * An array to compare against
 * </p>
 * @param array ...$_ [optional]
 * @return array an array containing all the entries from
 * array1 that are not present in any of the other arrays.
 * @meta
 */
#[Pure]
function array_diff(array $array1, array $array2, array ...$_) { }

示例:

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
 
$result=array_diff($a1,$a2);
print_r($result);

输出:
Array
(
    [d] => yellow
)

array_intersect

/**
 * Computes the intersection of arrays
 * @link https://php.net/manual/en/function.array-intersect.php
 * @param array $array1 <p>
 * The array with main values to check.
 * </p>
 * @param array $array2 <p>
 * An array to compare values against.
 * </p>
 * @param array ...$_ [optional]
 * @return array an array containing all of the values in
 * array1 whose values exist in all of the parameters.
 * @meta
 */
#[Pure]
function array_intersect(array $array1, array $array2, array ...$_) { }

示例:

$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");

$result=array_intersect($a1,$a2);
print_r($result);

输出:
Array
(
    [a] => red
    [b] => green
    [c] => blue
)

array_map

/**
 * Applies the callback to the elements of the given arrays
 * @link https://php.net/manual/en/function.array-map.php
 * @param callback $callback <p>
 * Callback function to run for each element in each array.
 * </p>
 * @param array $array <p>
 * An array to run through the callback function.
 * </p>
 * @param array ...$arrays [optional]
 * @return array an array containing all the elements of arr1
 * after applying the callback function to each one.
 * @meta
 */
function array_map($callback, array $array, array ...$arrays) { }

示例:

$str = 'abc';

$arr = [1,2,3];

$arr = array_map(function($v) use($str) {
    $v *= $v;
    $v .=  $str;
    return $v;
}, $arr);

print_r($arr);

输出:
Array
(
    [0] => 1abc
    [1] => 4abc
    [2] => 9abc
)
/**
 * Searches the array for a given value and returns the first corresponding key if successful
 * @link https://php.net/manual/en/function.array-search.php
 * @param mixed $needle <p>
 * The searched value.
 * </p>
 * <p>
 * If needle is a string, the comparison is done
 * in a case-sensitive manner.
 * </p>
 * @param array $haystack <p>
 * The array.
 * </p>
 * @param bool $strict [optional] <p>
 * If the third parameter strict is set to true
 * then the array_search function will also check the
 * types of the
 * needle in the haystack.
 * </p>
 * @return int|string|false the key for needle if it is found in the
 * array, false otherwise.
 * </p>
 * <p>
 * If needle is found in haystack
 * more than once, the first matching key is returned. To return the keys for
 * all matching values, use array_keys with the optional
 * search_value parameter instead.
 */
#[Pure]
function array_search ($needle, array $haystack, $strict = null) {}

array_search() 函数在数组中搜索某个键值,并返回对应的键名

示例:

$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);

输出:
a

array_unique

/**
 * Removes duplicate values from an array
 * @link https://php.net/manual/en/function.array-unique.php
 * @param array $array <p>
 * The input array.
 * </p>
 * @param int $flags [optional] <p>
 * The optional second parameter sort_flags
 * may be used to modify the sorting behavior using these values:
 * </p>
 * <p>
 * Sorting type flags:
 * </p><ul>
 * <li>
 * <b>SORT_REGULAR</b> - compare items normally
 * (don't change types)
 * </li>
 * <li>
 * <b>SORT_NUMERIC</b> - compare items numerically
 * </li>
 * <li>
 * <b>SORT_STRING</b> - compare items as strings
 * </li>
 * <li>
 * <b>SORT_LOCALE_STRING</b> - compare items as strings,
 * based on the current locale
 * </li>
 * </ul>
 * @return array the filtered array.
 * @meta
 */
#[Pure]
function array_unique(array $array, $flags = SORT_STRING) { }

array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。

示例:

$a=array("a"=>"red","b"=>"green","c"=>"red");
$b = array_unique($a);
print_r($b);

输出:
Array
(
    [a] => red
    [b] => green
)

compact

/**
 * Create array containing variables and their values
 * @link https://php.net/manual/en/function.compact.php
 * @param mixed $var_name <p>
 * compact takes a variable number of parameters.
 * Each parameter can be either a string containing the name of the
 * variable, or an array of variable names. The array can contain other
 * arrays of variable names inside it; compact
 * handles it recursively.
 * </p>
 * @param mixed ...$var_names [optional]
 * @return array the output array with all the variables added to it.
 */
#[Pure]
function compact ($var_name, ...$var_names) {}

示例:

$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);
print_r($result);

输出:
Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

list

list() 函数用数组中的元素为一组变量赋值。

注意,与 array() 类似,list() 实际上是一种语言结构,不是函数。

语法:list(var1,var2…) var1必须。第一个需要赋值的变量。 var2可选。可以有多个变量。

注释:该函数只用于数字索引的数组,且假定数字索引从 0 开始。

举例:

$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";

输出:

I have several animals, a Dog, a Cat and a Horse.






参考资料

PHP 5 Array 函数 https://www.runoob.com/php/php-ref-array.html

array_map https://www.php.net/array_map

compact https://www.php.net/manual/zh/function.compact.php


返回