数组函数

  1. <?php
  2. // 数组函数
  3. //!1.array_change_key_case:将数组中的所有键名修改为全大写或小写
  4. //array_change_key_case(array $array, int $case = CASE_LOWER): array
  5. // 参数
  6. // array
  7. // 需要操作的数组。
  8. // case
  9. // 可以在这里用两个常量,CASE_UPPER 或 CASE_LOWER(默认值)。
  10. $input_array = array("FirSt" => 'first', "SecOnd" => 'second');
  11. //将数组中的所有键名修改为全大写
  12. print_r(array_change_key_case($input_array, CASE_UPPER));
  13. echo '<br>';
  14. //将数组中的所有键名修改为全小写
  15. print_r(array_change_key_case($input_array, CASE_LOWER));
  16. echo '<hr>';
  17. //!2.array_chunk — 将一个数组分割成多个
  18. //array_chunk(array $array, int $length, bool $preserve_keys = false): array
  19. // array
  20. // 需要操作的数组
  21. // length
  22. // 每个数组的单元数目
  23. // preserve_keys
  24. // 设为 true,可以使 PHP 保留输入数组中原来的键名。如果你指定了 false,那每个结果数组将用从零开始的新数字索引。默认值是 false。
  25. $arr = array('a', 'b', 'c', 'd', 'e');
  26. print_r(array_chunk($arr, 2));
  27. echo '<br>';
  28. print_r(array_chunk($arr, 3, true));
  29. echo '<hr>';
  30. //!3.array_column 返回输入数组中指定列的值
  31. // 从结果集中取出 first_name 列
  32. // 表示从数据库返回的记录集的数组
  33. $records = array(
  34. array(
  35. 'id' => 2135,
  36. 'first_name' => 'John',
  37. 'last_name' => 'Doe',
  38. ),
  39. array(
  40. 'id' => 3245,
  41. 'first_name' => 'Sally',
  42. 'last_name' => 'Smith',
  43. ),
  44. array(
  45. 'id' => 5342,
  46. 'first_name' => 'Jane',
  47. 'last_name' => 'Jones',
  48. ),
  49. array(
  50. 'id' => 5623,
  51. 'first_name' => 'Peter',
  52. 'last_name' => 'Doe',
  53. )
  54. );
  55. //不指定键名,数字索引
  56. $first_names = array_column($records, 'first_name');
  57. print_r($first_names);
  58. echo '<br>';
  59. // 指定原id为键名
  60. $last_names = array_column($records, 'last_name', 'id');
  61. print_r($last_names);
  62. echo '<hr>';
  63. //!4 array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
  64. $a = array('green', 'red', 'yellow');
  65. $b = array('avocado', 'apple', 'banana');
  66. $c = array_combine($a, $b);
  67. print_r($c);
  68. echo '<hr>';
  69. //!5 array_count_values — 统计数组中所有的值
  70. //返回一个关联数组,用 array 数组中的值作为键名,该值在数组中出现的次数作为值
  71. $array = array(1, "hello", 1, "world", "hello");
  72. print_r(array_count_values($array));
  73. echo '<hr>';
  74. //!6 array_diff_assoc — 带索引检查计算数组的差集
  75. //比较键名
  76. $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  77. $array2 = array("a" => "green", "yellow", "red");
  78. $result = array_diff_assoc($array1, $array2);
  79. print_r($result);
  80. echo '<hr>';
  81. //!7.array_diff — 计算数组的差集
  82. //不比较键名
  83. $array1 = array("a" => "green", "red", "blue", "red");
  84. $array2 = array("b" => "green", "yellow", "red");
  85. $result = array_diff($array1, $array2);
  86. print_r($result);
  87. echo '<hr>';
  88. //!8 array_diff_key — 使用键名比较计算数组的差集
  89. //比较是根据键名而不是值来进行的
  90. $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
  91. $array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);
  92. var_dump(array_diff_key($array1, $array2));
  93. echo '<hr>';
  94. //!9 array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
  95. //array_diff_uassoc(array $array, array ...$arrays, callable $key_compare_func): array
  96. //比较了 array 和 arrays 并返回不同之处。 注意和 array_diff() 不同的是键名也用于比较。
  97. function key_compare_func($a, $b)
  98. {
  99. if ($a === $b) {
  100. return 0;
  101. }
  102. return ($a > $b)? 1:-1;
  103. }
  104. $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  105. $array2 = array("a" => "green", "yellow", "red", "c" => "blue");
  106. $result = array_diff_uassoc($array1, $array2, "key_compare_func");
  107. print_r($result);
  108. echo '<hr>';
  109. //!10 array_fill_keys — 使用指定的键和值填充数组
  110. $keys = array('foo', 5, 10, 'bar');
  111. $a = array_fill_keys($keys, 'banana');
  112. print_r($a);
  113. echo '<hr>';
  114. //!11 array_flip — 交换数组中的键和值
  115. $input = array("oranges", "apples", "pears");
  116. $flipped = array_flip($input);
  117. print_r($flipped);
  118. echo '<hr>';
  119. //! 12 array_intersect_assoc — 带索引检查计算数组的交集
  120. $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  121. $array2 = array("a" => "green", "b" => "yellow", "blue", "red");
  122. $result_array = array_intersect_assoc($array1, $array2);
  123. print_r($result_array);
  124. echo '<hr>';echo '<hr>';
  125. //!13 array_intersect — 计算数组的交集
  126. $array1 = array("a" => "green", "red", "blue");
  127. $array2 = array("b" => "green", "yellow", "red");
  128. $result = array_intersect($array1, $array2);
  129. print_r($result);
  130. echo '<hr>';
  131. //!14 array_is_list — 判断给定的 array 是否为 list
  132. // (PHP 8 >= 8.1.0)
  133. // if(array_is_list([])){
  134. // echo 'true';
  135. // }else{
  136. // echo 'false';
  137. // };
  138. // array_is_list(['apple', 2, 3]); // true
  139. // array_is_list([0 => 'apple', 'orange']); // true
  140. // // key 未从 0 开始
  141. // array_is_list([1 => 'apple', 'orange']); // false
  142. // // key 的顺序不正确
  143. // array_is_list([1 => 'apple', 0 => 'orange']); // false
  144. // // 包含非整数 key
  145. // array_is_list([0 => 'apple', 'foo' => 'bar']); // false
  146. // // 非连续 key
  147. // array_is_list([0 => 'apple', 2 => 'bar']); // false
  148. //!15 array_key_first — 获取指定数组的第一个键
  149. $array = ['a' => 1, 'b' => 2, 'c' => 3];
  150. $firstKey = array_key_first($array);
  151. var_dump($firstKey);
  152. echo '<hr>';
  153. //!16 array_key_last — 获取一个数组的最后一个键值
  154. $array = ['a' => 1, 'b' => 2, 'c' => 3];
  155. $lastKey = array_key_last($array);
  156. var_dump($lastKey);
  157. echo '<hr>';
  158. //!17 array_keys — 返回数组中部分的或所有的键名
  159. $array = array(0 => 100, "color" => "red");
  160. print_r(array_keys($array));
  161. $array = array("blue", "red", "green", "blue", "blue");
  162. print_r(array_keys($array, "blue"));
  163. $array = array("color" => array("blue", "red", "green"),
  164. "size" => array("small", "medium", "large"));
  165. print_r(array_keys($array));
  166. //! 18 array_merge_recursive — 递归地合并一个或多个数组
  167. $ar1 = array("color" => array("favorite" => "red"), 5);
  168. $ar2 = array(10, "color" => array("favorite" => "green", "blue"));
  169. $result = array_merge_recursive($ar1, $ar2);
  170. print_r($result);
  171. echo '<hr>';
  172. //!18 array_merge — 合并一个或多个数组
  173. //如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将 不会 覆盖原来的值,而是附加到后面。
  174. $array1 = array("color" => "red", 2, 4);
  175. $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
  176. $result = array_merge($array1, $array2);
  177. print_r($result);
  178. echo '<hr>';
  179. //!19 array_product — 计算数组中所有值的乘积
  180. $a = array(2.1, 2,3.3);
  181. echo "product(a) = " . array_product($a) . "\n";
  182. echo "product(array()) = " . array_product(array()) . "\n";
  183. echo '<hr>';
  184. //!20 array_sum — 对数组中所有值求和
  185. $a = array(2, 4, 6, 8);
  186. echo "sum(a) = " . array_sum($a) . "\n";
  187. $b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
  188. echo "sum(b) = " . array_sum($b) . "\n";

更多相关文章

  1. PHP分支、循环、php模板语法、html混编技巧
  2. Android使用Intent Filter来响应隐式Intent
  3. 学习OpenGL ES for Android(四)
  4. Android(安卓)SDK安装遇到的问题
  5. Android——列表选择框(Spinner)
  6. Java 字节码编译为Dex,d8比dx更好用!
  7. Android(安卓)Material Design之在RecyclerView中嵌套CardView实
  8. js-基础(六)字符串和数组的api
  9. Android(安卓)的SimpleAdapter几点认识

随机推荐

  1. 如何使用android中的搜索功能
  2. Android webview 调用android浏览器
  3. Android多媒体学习六:利用Service实现背景
  4. ArrayAdapter源码
  5. Android 五大布局之(一) 线性布局和相对布
  6. Android修改源代码控制不锁屏
  7. Android之不能静态注册的系统广播(5个)
  8. Android中的几种网络请求方式
  9. android 学习笔记(一)
  10. Android 权限配置