博客列表 >初学 PHP 数组函数

初学 PHP 数组函数

PHP新手学习记录
PHP新手学习记录原创
2020年04月28日 13:53:37762浏览

1. array_chunk() 将一个数组分割成多个

  1. array_chunk(需要分割的数组, 第个数组包含几个元素) : 返回数组类型
  1. $array = ['苹果', '香蕉', '草莓'];
  2. printf('<pre>%s</pre>', print_r(array_chunk($array, 2), true));

输出结果:

2. array_column() 返回数组中指定的一列

  1. array_column(数组, 需要返回值的列)
  1. $array = [
  2. ['id' => 1, 'name' => 'jack', 'sex' => '1'],
  3. ['id' => 2, 'name' => 'lise', 'sex' => '0'],
  4. ['id' => 3, 'name' => 'rick', 'sex' => '1'],
  5. ];
  6. // 返回 $array 数组中的 name 列
  7. printf('<pre>%s</pre>', print_r(array_column($array, 'name'), true));
  8. // 返回 $array 数组中的 name 列,并用 id 作为键
  9. printf('<pre>%s</pre>', print_r(array_column($array, 'name', 'id'), true));

输出结果:

3. array_intersect() 找出数组中都有的值

  1. $array1 = ['苹果', '香蕉', '草莓', '西瓜'];
  2. $array2 = ['樱桃', '香蕉', '西瓜', '火龙果'];
  3. $array3 = ['苹果', '香蕉', '西瓜', '草莓'];
  4. printf('<pre>%s</pre>', print_r(array_intersect($array1, $array2), true));

输出结果

4. list() 将数组中的值赋给一组变量

  1. $info = ['咖啡', '棕色的', '咖啡因'];
  2. list($drink, $color, $power) = $info;
  3. printf('<pre>%s</pre>', print_r($info, true));
  4. echo "{$drink}是{$color}的,{$power}使它与众不同";

运行结果:

5. array_key_exists() 检查数组里是否有指定的键名或索引

  1. $array = ['a' => '苹果', 'b' => '香蕉', 'c' => '草莓'];
  2. if (array_key_exists('a', $array)) {
  3. echo '数组中有 a 这个键';
  4. }
  5. // 输出结果:
  6. // 数组中有 a 这个键

6. array_key_first() 获取给定数组的第一个键,而不影响内部数组指针。(PHP 7 >= 7.3.0)

  1. $array = ['苹果', '香蕉', '草莓'];
  2. var_dump(array_key_first($array)); // int(0)

7. array_key_last() 获取给定数组的最后一个键,而不影响内部数组指针。(PHP 7 >= 7.3.0)

  1. $array = ['苹果', '香蕉', '草莓'];
  2. var_dump(array_key_last($array)); // int(2)

8. array_key() 返回数组中部分或所有的键名

  1. $array = ['苹果', '香蕉', '草莓', '香蕉', '西瓜', '香蕉'];
  2. printf('<pre>%s</pre>', print_r(array_keys($array), true));
  3. // 只返回包含 '香蕉' 的键
  4. printf('<pre>%s</pre>', print_r(array_keys($array, '香蕉'), true));

输出结果:

9. array_merge() 合并一个或多个数组

  1. $array1 = ['苹果', '香蕉', '草莓'];
  2. $array2 = ['樱桃', '西瓜', '火龙果'];
  3. $array = array_merge($array1, $array2);
  4. printf('<pre>%s</pre>', print_r($array, true));

输出结果:

10. natcasesort() 用”自然排序”算法对数组进行不区分大小写字母的排序

  1. $array = ['a1', 'a2', 'a10', 'a11'];
  2. natcasesort($array);
  3. printf('<pre>%s</pre>', print_r($array, true));

输出结果:

  1. Array
  2. (
  3. [0] => a1
  4. [1] => a2
  5. [2] => a10
  6. [3] => a11
  7. )

将课堂上讲过的 array_slice() 与 array_splice() 实例演示并发布

array_slice() 从数组中取出一段

  1. $array = ['0苹果', '1香蕉', '2草莓', '3西瓜', '4樱桃'];
  2. $output = array_slice($array, 2); // 从第3个开始取全部
  3. $output = array_slice($array, 0, 2); // 从第1个开始取2个
  4. $output = array_slice($array, -1, 1); // 取最后一个
  5. $output = array_slice($array, -1, 1, true); // 取最后一个,且键值不改变

array_splice() 去掉数组中的某一部分并用其它值取代

  1. $array = ['0苹果', '1香蕉', '2草莓', '3西瓜'];
  2. // 去掉最后一个
  3. $output = array_splice($array, -1);
  4. // 只保留第一个
  5. $output = array_splice($array, 0, 1);
  6. // 去掉中间,只保留两头的两个元素
  7. $output = array_splice($array, 1, -1);

回调函数例子 array_udiff()

  1. function compare_func($key1, $key2)
  2. {
  3. if ($key1 === $key2) {
  4. return 0;
  5. } elseif ($key1 > $key2) {
  6. return 1;
  7. } else {
  8. return -1;
  9. }
  10. }
  11. $array1 = ['0苹果', '1香蕉', '2草莓', '3西瓜'];
  12. $array2 = ['0苹果', '1樱桃', '2草莓', '3甜瓜'];
  13. $array = array_udiff($array1, $array2, 'compare_func');
  14. printf('<pre>%s</pre>', print_r($array, true));

输出结果:

  1. Array
  2. (
  3. [1] => 1香蕉
  4. [3] => 3西瓜
  5. )

请老师帮忙解答下,上边的 array_udiff()函数 return 的 0、1、-1 有什么作用?这个函数没看懂。

上一条:数组函数练习下一条:字符串函数
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议