博客列表 >数组函数学习小结

数组函数学习小结

P粉317509817
P粉317509817原创
2022年04月23日 17:16:05625浏览
  1. <?php
  2. // array_udiff用回调函数比较数据来计算数组的差集
  3. // 要对比的数组
  4. $array1 = array(new stdclass, new stdclass,
  5. new stdclass, new stdclass,
  6. );
  7. $array2 = array(
  8. new stdclass, new stdclass,
  9. );
  10. // 为每个对象设置一些属性
  11. $array1[0]->width = 11; $array1[0]->height = 3;
  12. $array1[1]->width = 7; $array1[1]->height = 1;
  13. $array1[2]->width = 2; $array1[2]->height = 9;
  14. $array1[3]->width = 5; $array1[3]->height = 7;
  15. $array2[0]->width = 7; $array2[0]->height = 5;
  16. $array2[1]->width = 9; $array2[1]->height = 2;
  17. function compare_by_area($a, $b) {
  18. $areaA = $a->width * $a->height;
  19. $areaB = $b->width * $b->height;
  20. if ($areaA < $areaB) {
  21. return -1;
  22. } elseif ($areaA > $areaB) {
  23. return 1;
  24. } else {
  25. return 0;
  26. }
  27. }
  28. $array3=array_udiff($array1, $array2, 'compare_by_area');
  29. printf('<pre>%s</pre>',print_r($array3,true));
  30. echo '<hr>';
  31. // array_reverse — 返回单元顺序相反的数组
  32. $input = array("php", 4.0, array("green", "red"));
  33. $reversed = array_reverse($input);
  34. $preserved = array_reverse($input, true);//true保持原有的key值,默认为false
  35. printf('<pre>%s</pre>',print_r($input,true));
  36. printf('<pre>%s</pre>',print_r($reversed,true));
  37. printf('<pre>%s</pre>',print_r($preserved,true));
  38. echo '<hr>';
  39. // array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
  40. $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  41. $array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
  42. printf('<pre>%s</pre>',print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"),true));
  43. echo '<hr>';
  44. // array_walk_recursive — 对数组中的每个成员递归地应用用户函数
  45. $sweet = array('a' => 'apple', 'b' => 'banana');
  46. $fruits = array('sweet' => $sweet, 'sour' => 'lemon');
  47. function test_print($item, $key)
  48. {
  49. echo "$key holds $item <br>";
  50. }
  51. array_walk_recursive($fruits, 'test_print');
  52. echo '<hr>';
  53. // array_uintersect — 计算数组的交集,用回调函数比较数据
  54. $array5 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  55. $array4 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
  56. printf('<pre>%s</pre>',print_r(array_uintersect($array5, $array4, "strcasecmp"),true));

效果:

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