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

把数组中的值赋给一组变量

扫描二维码关注公众号,回复: 9951270 查看本文章
<?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
)

发布了116 篇原创文章 · 获赞 12 · 访问量 99万+

猜你喜欢

转载自blog.csdn.net/u012628581/article/details/102512197