1. array_chunk() 将一个数组分割成多个
array_chunk(需要分割的数组, 第个数组包含几个元素) : 返回数组类型
$array = ['苹果', '香蕉', '草莓'];
printf('<pre>%s</pre>', print_r(array_chunk($array, 2), true));
输出结果:
2. array_column() 返回数组中指定的一列
array_column(数组, 需要返回值的列)
$array = [
['id' => 1, 'name' => 'jack', 'sex' => '1'],
['id' => 2, 'name' => 'lise', 'sex' => '0'],
['id' => 3, 'name' => 'rick', 'sex' => '1'],
];
// 返回 $array 数组中的 name 列
printf('<pre>%s</pre>', print_r(array_column($array, 'name'), true));
// 返回 $array 数组中的 name 列,并用 id 作为键
printf('<pre>%s</pre>', print_r(array_column($array, 'name', 'id'), true));
输出结果:
3. array_intersect() 找出数组中都有的值
$array1 = ['苹果', '香蕉', '草莓', '西瓜'];
$array2 = ['樱桃', '香蕉', '西瓜', '火龙果'];
$array3 = ['苹果', '香蕉', '西瓜', '草莓'];
printf('<pre>%s</pre>', print_r(array_intersect($array1, $array2), true));
输出结果
4. list() 将数组中的值赋给一组变量
$info = ['咖啡', '棕色的', '咖啡因'];
list($drink, $color, $power) = $info;
printf('<pre>%s</pre>', print_r($info, true));
echo "{$drink}是{$color}的,{$power}使它与众不同";
运行结果:
5. array_key_exists() 检查数组里是否有指定的键名或索引
$array = ['a' => '苹果', 'b' => '香蕉', 'c' => '草莓'];
if (array_key_exists('a', $array)) {
echo '数组中有 a 这个键';
}
// 输出结果:
// 数组中有 a 这个键
6. array_key_first() 获取给定数组的第一个键,而不影响内部数组指针。(PHP 7 >= 7.3.0)
$array = ['苹果', '香蕉', '草莓'];
var_dump(array_key_first($array)); // int(0)
7. array_key_last() 获取给定数组的最后一个键,而不影响内部数组指针。(PHP 7 >= 7.3.0)
$array = ['苹果', '香蕉', '草莓'];
var_dump(array_key_last($array)); // int(2)
8. array_key() 返回数组中部分或所有的键名
$array = ['苹果', '香蕉', '草莓', '香蕉', '西瓜', '香蕉'];
printf('<pre>%s</pre>', print_r(array_keys($array), true));
// 只返回包含 '香蕉' 的键
printf('<pre>%s</pre>', print_r(array_keys($array, '香蕉'), true));
输出结果:
9. array_merge() 合并一个或多个数组
$array1 = ['苹果', '香蕉', '草莓'];
$array2 = ['樱桃', '西瓜', '火龙果'];
$array = array_merge($array1, $array2);
printf('<pre>%s</pre>', print_r($array, true));
输出结果:
10. natcasesort() 用”自然排序”算法对数组进行不区分大小写字母的排序
$array = ['a1', 'a2', 'a10', 'a11'];
natcasesort($array);
printf('<pre>%s</pre>', print_r($array, true));
输出结果:
Array
(
[0] => a1
[1] => a2
[2] => a10
[3] => a11
)
将课堂上讲过的 array_slice() 与 array_splice() 实例演示并发布
array_slice() 从数组中取出一段
$array = ['0苹果', '1香蕉', '2草莓', '3西瓜', '4樱桃'];
$output = array_slice($array, 2); // 从第3个开始取全部
$output = array_slice($array, 0, 2); // 从第1个开始取2个
$output = array_slice($array, -1, 1); // 取最后一个
$output = array_slice($array, -1, 1, true); // 取最后一个,且键值不改变
array_splice() 去掉数组中的某一部分并用其它值取代
$array = ['0苹果', '1香蕉', '2草莓', '3西瓜'];
// 去掉最后一个
$output = array_splice($array, -1);
// 只保留第一个
$output = array_splice($array, 0, 1);
// 去掉中间,只保留两头的两个元素
$output = array_splice($array, 1, -1);
回调函数例子 array_udiff()
function compare_func($key1, $key2)
{
if ($key1 === $key2) {
return 0;
} elseif ($key1 > $key2) {
return 1;
} else {
return -1;
}
}
$array1 = ['0苹果', '1香蕉', '2草莓', '3西瓜'];
$array2 = ['0苹果', '1樱桃', '2草莓', '3甜瓜'];
$array = array_udiff($array1, $array2, 'compare_func');
printf('<pre>%s</pre>', print_r($array, true));
输出结果:
Array
(
[1] => 1香蕉
[3] => 3西瓜
)