Blogger Information
Blog 11
fans 0
comment 0
visits 9146
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
初学 PHP 数组函数
PHP新手学习记录
Original
763 people have browsed it

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 有什么作用?这个函数没看懂。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:比较参数大小, 使用返回值是否大于0判断
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post