php中array_map,array_filter,array_walk区别
array_walk:
array_walk()返回布尔值,如果回调函数需要直接作用于数组中的值,则给回调函数的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。此函数可以同时获取到数组的key和value。
array_map:
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
简单点说就是回调函数对数组中每个值都会产生最终影响,并在调用array_map的返回值中体现。
此函数可以同时对多个数组进行操作。并最终合并为一个数组(每个数组根据下标平行对其到同一个二维数组中)。
array_filter:
此函数是专门用于过去数组中的元素,简单点说就是对数组中的经过回调函数判断的value进行过滤,并通过array_filter()函数返回处理后的数组。
因此分析到此我们可以是哟on个array_walk和array_map来做数组的预处理,最常见的是对每个数组值的trim操作。以下是笔者的示例代码:
代码如下 | 复制代码 |
<?php function array_walk_func(&$v, $k) { function array_map_func($v) {
array(3) { |
mktime 函数
mktime() 函数返回一个日期的 Unix 时间戳。
参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst 可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。
例子
mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:
代码如下 | 复制代码 |
<?php 输出: Jan-05-2002
|
在一个小项目中要用到环比数据的对比,数据的跨度是一个星期,要做到时间上的定位于是写了两个函数,欢迎拍砖。
计算星期一的日期:
代码如下 | 复制代码 |
function getTheMonday($date) { |
计算星期天的日期:
代码如下 | 复制代码 |
function getTheSunday($date) { return date ( 'Y-m-d', strtotime ( 'Sunday', strtotime ( $date ) ) ); } |
array_map(callback, arr1, arr2……);函数返回用户自定义回调函数执行后的数组。
代码如下 | 复制代码 |
function escapeString($value) { if (empty($value)) { return $value; } else { return is_array($value) ? array_map('escapeString', $value) : addslashes($value); } } |
我们先来看字符串转换成数组
str_split()
<?php
print_r(str_split("Hello"));
?>
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
)
explode()
<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
结果
Array
(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
)
preg_split()函数
代码如下 | 复制代码 |
<? |
总结在php中str_split()、explode()函数功能是一样的,这里就不介绍了。
把数组转换在字符串
implode()
例
代码如下 | 复制代码 |
$array = array('a','b','c'); echo implode($array); //结果 abc |
例
代码如下 | 复制代码 |
$curlPost = 'a=1&b=2';//模拟POST数据 $file_contents = curl_exec($ch);//抓取的内容放在变量中 |
还有一种办法就是使用file_get_contents() 远程文件获取函数,用来获取远程页面内容
注意事项
curl()效率挺高的,支持多线程,不过需要开启下curl扩展。下面是curl扩展开启的步骤:
1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;
2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;
3、重启apache或者IIS。
相关文章
mysql_connect与mysql_pconnect的区别详解
在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25- 系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter。如果对smarty比较熟悉的话,学习angularjs会比较容易一点,这篇文章给大家介绍angularjs filter用法详解,感兴趣的朋友一起学习吧...2015-12-29
- 这篇文章主要介绍了C#中out与ref的区别实例解析,对C#初学者有不错的学习借鉴价值,需要的朋友可以参考下...2020-06-25
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04谈谈Jquery中的children find 的区别有哪些
精华:find方法能找子孙,children方法只能找儿子一、Jquery中children 语法.children(selector) 说明expr是表达式,可选参数,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表...2015-10-21- 在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
- 这篇文章主要介绍了jQuery中inArray方法注意事项,结合实例形式分析了jQuery中inArray方法变量判断的相关注意事项,需要的朋友可以参考下...2016-01-26
nestjs中异常过滤器Exceptionfilter的具体使用
这篇文章主要介绍了nestjs中异常过滤器Exceptionfilter的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-07解决vue props传Array/Object类型值,子组件报错的情况
这篇文章主要介绍了解决vue props传Array/Object类型值,子组件报错的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07JSON字符串转换JSONObject和JSONArray的方法
这篇文章主要介绍了JSON字符串转换JSONObject和JSONArray的方法的相关资料,需要的朋友可以参考下...2016-06-12- 今天小编就为大家分享一篇python Tensor和Array对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
- 这篇文章主要介绍了C#中sleep和wait的区别分析,有助于深入理解C#中线程的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了uniapp和vue的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-10-19
Angularjs中如何使用filterFilter函数过滤
这篇文章主要介绍了Angularjs中如何使用filterFilter函数过滤的相关资料,需要的朋友可以参考下...2016-02-12- 这篇文章主要介绍了c# 数组的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
- //函数list while(list($id,$username,$password,$add_date,$mdn,$mobile,$channel,$last_date,$area,$nickname) = mysql_fetch_array($rs)){ ...2016-11-25
- 这篇文章主要介绍了input框中的name和id的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-11-22
Javascript实现Array和String互转换的方法
这篇文章主要介绍了Javascript实现Array和String互转换的方法,涉及JavaScript中toString方法与split方法的使用技巧,需要的朋友可以参考下...2015-12-24- 在php中switch是选择,if else也有同理,但是它们肯定是有区别的,那么我们来看看它们两者的区别在哪里呢,下面先看switch case语句吧。 switch($id){ case 1: ...2016-11-25
- 这篇文章主要介绍了C++中字符串输入get与getline的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25