PHP中常用的十个数组函数
程序员文章站
2024-03-17 16:39:16
...
PHP中常用的十个数组函数
in_array
【in_əˈrā】
检查数组中是否存在某个值
<?php
@see https://www.php.net/manual/zh/function.in-array.php
// in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
// 大海捞针,在大海(haystack)中搜索针( needle),如果没有设置 strict 则使用宽松的比较。
$haystack = ['a', 'b', 'c', 'd'];
var_dump(in_array('a', $haystack));
// bool(true)
array_search
在数组中搜索给定的值,如果成功则返回首个相应的键名
<?php
@see https://www.php.net/manual/zh/function.array-search.php
// array_search ( mixed $needle , array $haystack [, bool $strict = false ] ) : mixed
// 大海捞针,在大海(haystack)中搜索针( needle),如果没有设置 strict 则使用宽松的比较。
$haystack = ['a', 'b', 'c', 'd'];
var_dump(array_search('a', $haystack));
// int(0)
$haystack = ['a', 'b', 'c', 'd'];
var_dump(array_search('a', $haystack));
// bool(false)
array_key_exists
检查数组里是否有指定的键名或索引
<?php
@see https://www.php.net/manual/zh/function.array-key-exists.php
// array_key_exists ( mixed $key , array $array ) : bool
// 数组里有键 key 时,array_key_exists() 返回 TRUE。 key 可以是任何能作为数组索引的值。
$haystack = ['a', 'b', 'c', 'd'];
var_dump(array_key_exists(0, $haystack));
// bool(true)
$haystack = ['a', 'b', 'c', 'd'];
var_dump(array_key_exists(4, $haystack));
// bool(false)
$haystack = ['a'=>'aa', 'b'=>'bb', 'c'=>'cc', 'd'=>'dd'];
var_dump(array_key_exists('a', $haystack));
// bool(true)
array_values
返回数组中所有的值
<?php
@see https://www.php.net/manual/zh/function.array-key-exists.php
// array_values ( array $array ) : array
// array_values() 返回$array数组中所有的值并给其建立数字索引。
$haystack = ['a'=>'aa', 'b'=>'bb', 'c'=>'cc', 'd'=>'dd'];
var_dump(array_values($haystack));
Array
(
[0] => aa
[1] => bb
[2] => cc
[3] => dd
)
array_filter
用回调函数过滤数组中的单元
<?php
@see https://www.php.net/manual/zh/function.array-filter.php
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
array:要循环的数组
callback:使用的回调函数。
如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。更多信息见转换为布尔值。
flag:决定callback接收的参数形式:
ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
function myfilter($item)
{
if ($item === 'bb')
{
return false;
}
return true;
}
$haystack = ['a'=>'aa', 'b'=>'bb', 'c'=>'cc', 'd'=>'dd'];
print_r(array_filter($haystack,'myfilter'));
Array
(
[a] => aa
[c] => cc
[d] => dd
)
array_column
返回数组中指定的一列
<?php
@see https://www.php.net/manual/zh/function.array-column.php
// array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) : array
// array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
// 取出数组中的password列
$haystack = [
['user' => 'user1', 'password' => 'password1'],
['user' => 'user2', 'password' => 'password2'],
['user' => 'user3', 'password' => 'password3'],
['user' => 'user4', 'password' => 'password4'],
];
print_r(array_column($haystack,'password'));
Array
(
[0] => password1
[1] => password2
[2] => password3
[3] => password4
)
// 取出数组中的password列,并使用user列做为key值。
print_r(array_column($haystack,'password'));
Array
(
[user1] => password1
[user2] => password2
[user3] => password3
[user4] => password4
)
array_merge
合并一个或多个数组
<?php
@see https://www.php.net/manual/zh/function.array-merge.php
// array_merge ( array $array1 [, array $... ] ) : array
// 如果数组中key相同,则value取最后一个相同key的value
$haystack_1 = ['user' => 'user1', 'password' => 'password1'];
$haystack_2 = ['user' => 'user2', 'email' => 'email2'];
print_r(array_merge($haystack_1, $haystack_2));
Array
(
[user] => user2
[password] => password1
[email] => email2
)
array_pop
弹出数组最后一个单元(出栈)
<?php
@see https://www.php.net/manual/zh/function.array-pop.php
// array_pop ( array &$array ) : mixed
// 弹出数组最后一个单元(出栈),传递的参数为数组指针,返回值为出栈元素。
$haystack = ['user' => 'user1', 'password' => 'password1'];
print_r(array_pop($haystack)); // password1
print_r($haystack);
(
[user] => user1
)
list
把数组中的值赋给一组变量
<?php
@see https://www.php.net/manual/zh/function.list.php
list ( mixed $var1 [, mixed $... ] ) : array
// 可以理解为出栈,传递的参数为数组指针,返回值为出栈元素。
$haystack = ['user', 'password'];
list($u, $p) = $haystack;
echo $u.$p;
userpassword
ksort
对数组按照键名排序
<?php
@see https://www.php.net/manual/zh/function.ksort.php
ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] ) : bool
// 对数组按照键名排序,保留键名到数据的关联。成功时返回 TRUE, 或者在失败时返回 FALSE。
$haystack = [
'c'=>'value',
'a'=>'value',
'b'=>'value'
];
ksort($haystack);
print_r($haystack);
Array
(
[a] => value
[b] => value
[c] => value
)
上一篇: 03-jQuery和JS入口函数的区别
下一篇: 03.JS进阶——闭包
推荐阅读