0

0

Android程序员学PHP开发(24)-数组操作相关函数(2)回调函数篇-PhpStorm

黄舟

黄舟

发布时间:2017-03-03 09:48:05

|

1012人浏览过

|

来源于php中文网

原创

本篇主要是 使用回调函数处理数组,2种方式:

函数调用,函数结构一目了然

匿名函数 ,即时使用,安全性高

下面演示几个函数的使用:主要是了解回调函数的使用:

count() 计算数组中的单元数目或对象中的属性个数

立即学习PHP免费学习笔记(深入)”;

array_count_values() 统计数组中所有的值出现的次数

array_unique() 移除数组中重复的值

10分钟内自己学会PHP
10分钟内自己学会PHP

10分钟内自己学会PHP其中,第1篇为入门篇,主要包括了解PHP、PHP开发环境搭建、PHP开发基础、PHP流程控制语句、函数、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、日期和时间等内容;第2篇为提高篇,主要包括MySQL数据库设计、PHP操作MySQL数据库、Cookie和Session、图形图像处理技术、文件和目录处理技术、面向对象、PDO数据库抽象层、程序调试与错误处理、A

下载

array_filter() 用回调函数过滤数组中的单元

array_walk() 使用用户自定义函数对数组中的每个元素做回调处理

array_map() 为数组的每个元素应用回调函数

通过array_filter()和array_walk()重点了解一下回调函数的使用,尤其是安全性较高的匿名函数

"Linux", "webserver"=>"Apache", "db"=>"MySQL", "language"=>"PHP");

    echo '---------- print_r() ----------
'; print_r($lamp); // 打印结果:Array ( [os] => Linux [webserver] => Apache [db] => MySQL [language] => PHP ) echo '
'; /** * count() 计算数组中的单元数目或对象中的属性个数 */ echo '---------- count() 字符串 ----------
'; $str = "hello world"; $str2 = ""; var_dump(count($str)); // 打印结果:int(1) echo '
'; var_dump(count($str2)); // 打印结果:int(1) echo '
'; echo '---------- count() 数组 ----------
'; echo count($lamp); // 打印结果:4 echo '
'; echo '---------- count() 多维数组 ----------
'; $web = array( "lamp"=>array("os"=>"Linux", "webserver"=>"Apache", "db"=>"MySQL", "language"=>"PHP"), "lamp2"=>array("os"=>"Linux", "webserver"=>"Apache", "db"=>"MySQL", "language"=>"PHP"), "lamp3"=>array("os"=>"Linux", "webserver"=>"Apache", "db"=>"MySQL", "language"=>"PHP") ); echo count($web); // 打印结果:3 echo '
'; echo count($web,1); // 打印结果:15 , 数组有3个元素,子数组有12个元素 echo '
'; /** * array_count_values() 统计数组中所有的值出现的次数 */ echo '---------- array_count_values() ----------
'; $lamp4 = array("os"=>"Linux", "webserver"=>"Apache", "db"=>"MySQL", "db2"=>"MySQL", "language"=>"PHP"); echo print_r(array_count_values($lamp4)); // 打印结果:Array ( [Linux] => 1 [Apache] => 1 [MySQL] => 2 [PHP] => 1 ) 1 echo '
'; /** * array_unique() 移除数组中重复的值 * 第一次出现的value保留其key,其他的移除 */ echo '---------- array_unique() ----------
'; $lamp5 = array("os"=>"Linux", "webserver"=>"Apache", "db"=>"MySQL", "db2"=>"MySQL", "language"=>"PHP"); echo print_r(array_unique($lamp5)); // 打印结果:Array ( [os] => Linux [webserver] => Apache [db] => MySQL [language] => PHP ) 1 echo '
'; /** * array_filter() 用回调函数过滤数组中的单元 */ echo '---------- array_filter() ----------
'; $arr = array(1,2,false,-3,null,-2,3,4,"",5,-5,-4,-1); echo '
';
    var_dump($arr);
    /*打印结果:
            array(13) {
              [0]=>
              int(1)
              [1]=>
              int(2)
              [2]=>
              bool(false)
              [3]=>
              int(-3)
              [4]=>
              NULL
              [5]=>
              int(-2)
              [6]=>
              int(3)
              [7]=>
              int(4)
              [8]=>
              string(0) ""
              [9]=>
              int(5)
              [10]=>
              int(-5)
              [11]=>
              int(-4)
              [12]=>
              int(-1)
            }
    */
    echo '---------- array_filter() 不传参调用----------
'; var_dump(array_filter($arr)); /*打印结果:结果中,false、null、"",被过滤掉了 array(10) { [0]=> int(1) [1]=> int(2) [3]=> int(-3) [5]=> int(-2) [6]=> int(3) [7]=> int(4) [9]=> int(5) [10]=> int(-5) [11]=> int(-4) [12]=> int(-1) } */ echo '---------- array_filter() 通过自定义函数过滤 ----------
'; function myfun($value){ // 自己写的函数,大于等于0返回真,否则返回假 if ($value>=0){ return true; }else{ return false; } } var_dump(array_filter($arr,"myfun")); /*打印结果:结果中,小于0的,被过滤掉了 array(8) { [0]=> int(1) [1]=> int(2) [2]=> bool(false) [4]=> NULL [6]=> int(3) [7]=> int(4) [8]=> string(0) "" [9]=> int(5) } */ echo '---------- array_filter() 通过匿名函数过滤 ----------
'; echo '---------- 当其他地方不需要调用这个函数,推荐使用匿名函数,方便且安全 ----------
'; var_dump(array_filter($arr, function ($value){ return !($value%2==0); })); /*打印结果:结果中,2的倍数,被过滤掉了 array(6) { [0]=> int(1) [3]=> int(-3) [6]=> int(3) [9]=> int(5) [10]=> int(-5) [12]=> int(-1) } */ /** * array_walk() 使用用户自定义函数对数组中的每个元素做回调处理 */ echo '---------- array_walk() ----------
'; $arr2 = array(1,2,3,4,5); print_r($arr2); echo '
'; /*打印结果:数组原型打印 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) */ echo '---------- array_walk() 没有引用 $value 调用函数 ----------
'; function myfun2($value){ // 没有引用 $value $value=$value*$value; } array_walk($arr2,"myfun2"); // 没有引用 $value print_r($arr2); echo '
'; /*打印结果: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) */ echo '---------- array_walk() 有引用 &$value 调用函数 ----------
'; function myfun3(&$value){ // 引用 &$value $value=$value*$value; } array_walk($arr2,"myfun3"); // 引用 &$value print_r($arr2); echo '
'; /*打印结果: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 ) */ echo '---------- array_walk() 同时处理key和value ----------
'; $arr3 = array("one"=>1, "two"=>2, "three"=>3, "four"=>4, "five"=>5); print_r($arr3); echo '
'; /*打印结果:数组原型打印 Array ( [one] => 1 [two] => 2 [three] => 3 [four] => 4 [five] => 5 ) */ echo '---------- array_walk() 调用函数有2个参数 即,同时对key和value操作 ----------
'; function myfun4(&$value,$key){ $value=$value*$value; echo $key."~~~~~".$value."
"; } array_walk($arr3,"myfun4"); /*打印结果: one~~~~~1 two~~~~~4 three~~~~~9 four~~~~~16 five~~~~~25 */ echo '---------- array_walk() 调用函数有2个参数 即,同时对key和value操作 匿名函数----------
'; array_walk($arr3,function ($value, $key){ echo $key."~~~~~".$value."
"; }); /*打印结果: one~~~~~1 two~~~~~4 three~~~~~9 four~~~~~16 five~~~~~25 */ /** * array_map() 为数组的每个元素应用回调函数 */ echo '---------- array_map() ----------
'; $arr4 = array(1,2,3,4,5); $arr5 = array(6,7,8,9,0); print_r($arr4); echo '
'; /*打印结果:数组原型打印 Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) */ echo '---------- array_map() 1 ----------
'; function myfun5($value){ return $value*$value*$value; } $arr4new = array_map("myfun5", $arr4); print_r($arr4new); echo '
'; /*打印结果: Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) */ echo '---------- array_map() 2 注意return ----------
'; function myfun6($value){ echo $value*$value*$value."
"; } $arr4new = array_map("myfun6", $arr4); print_r($arr4new); echo '
'; /*打印结果:数组里的value没了,因为在函数里没有return,所以,使用array_map()注意return 1 8 27 64 125 Array ( [0] => [1] => [2] => [3] => [4] => ) */ echo '---------- array_map() 3 ----------
'; function myfun7($value, $value2){ echo "$value~~~~~$value2
"; return 1; } $arr45new = array_map("myfun7", $arr4,$arr5); print_r($arr45new); echo '
'; /*打印结果: 1~~~~~6 2~~~~~7 3~~~~~8 4~~~~~9 5~~~~~0 Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 1 ) */ echo '---------- array_map() 4 ----------
'; $arr45new = array_map(null, $arr4,$arr5); print_r($arr45new); echo '
'; /*打印结果: Array ( [0] => Array ( [0] => 1 [1] => 6 ) [1] => Array ( [0] => 2 [1] => 7 ) [2] => Array ( [0] => 3 [1] => 8 ) [3] => Array ( [0] => 4 [1] => 9 ) [4] => Array ( [0] => 5 [1] => 0 ) ) */ echo '---------- array_map() 5 ----------
'; $arr6 = array(1,2,3,4,5); $arr7 = array("one","two","three"); $arr8 = array("aa","bb","cc","dd"); $arr678new = array_map(null,$arr6,$arr7,$arr8); print_r($arr678new); echo '
'; /*打印结果: Array ( [0] => Array ( [0] => 1 [1] => one [2] => aa ) [1] => Array ( [0] => 2 [1] => two [2] => bb ) [2] => Array ( [0] => 3 [1] => three [2] => cc ) [3] => Array ( [0] => 4 [1] => [2] => dd ) [4] => Array ( [0] => 5 [1] => [2] => ) ) */

以上就是Android程序员学PHP开发(24)-数组操作相关函数(2)回调函数篇-PhpStorm的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

129

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

77

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

81

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

60

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

444

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

15

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号