php数组函数

PHP 数组函数大全

若如初见. 提交于 2019-11-30 20:51:39
PHP数组函数是核心的一部分。无需安装即可使用这些函数 函数名称 描述 array_change_key_case 将数组中的所有键名修改为全大写或小写 array_chunk 将一个数组分割成多个 array_column 返回数组中指定的一列 array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_count_values 统计数组中所有的值 array_diff_assoc 带索引检查计算数组的差集 array_diff_key 使用键名比较计算数组的差集 array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集 array_diff_ukey 用回调函数对键名比较计算数组的差集 array_diff 计算数组的差集 array_fill_keys 使用指定的键和值填充数组 array_fill 用给定的值填充数组 array_filter 用回调函数过滤数组中的单元 array_flip 交换数组中的键和值 array_intersect_assoc 带索引检查计算数组的交集 array_intersect_key 使用键名比较计算数组的交集 array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引 array_intersect_ukey

【PHP】 解决array_filter会过滤0 false的问题

非 Y 不嫁゛ 提交于 2019-11-30 14:27:12
定义和用法 array_filter() 函数用回调函数过滤数组中的元素。 该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。 语法: array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )  array : 必需。规定要过滤的数组。 callback : 可选。规定要用的回调函数 flag 可选。决定 callback 接收的参数形式: 问题: 数据过滤空值时常会使用array_filter,但其默认会把0、false这样具体的值过滤掉。 方法一: 直接使用: function filtrfunction($arr){ if($arr === '' || $arr === null){ return false; } return true; } $data = array( 'a'=>1, 'b'=>0, 'c'=>'', 'd'=>null, 'e'=>5, 'f'=>false ); print_r(array_filter($data,'filtrfunction'));    方法二: 在类中使用: function filtrfunction($arr){ if($arr === '' ||

PHP 常用函数

删除回忆录丶 提交于 2019-11-30 11:26:33
目录 检测数组是否存在某值: 合并多个数组 递归数组键值对,把键值当作输入参数给指定函数 设置响应头 把查询字符串解析到变量中 检测字符串编码 字符串按from_encoding解码按to_encoding转码 关联数组键大小写改变 在数组的头部添加或删除 使用call_user_func_array调用各种环境函数 ini_set在PHP语言里设置的php.ini文件中 检测数组是否存在某值: bool in_array( mixed $needle, array $haystack, [ bool $strict = FALSE ] ) 参数 描述 needle 必需。规定要在数组搜索的值。如果是字符串,则比较是区分大小写的。 haystack 必需。规定要搜索的数组。不管是索引数组还是关联数组,只搜索值值 strict 可选。如果设置该参数为真,则in_array()函数还会检查针的类型是否和草堆中的相同 合并多个数组 // 后面的数组 会按"key是否重复"重写前面数组参数key-value对 array array_merge ( array $array1, [ array $array2 = null, array $_ = null, ] ) // 注意,此函数的结果只会输出一个重新从零开始索引的索引数组 $age=array(2 =>"35", '6'=>"37"

php常用数组函数

荒凉一梦 提交于 2019-11-30 11:20:57
php常用数组函数 大致需求前文以及简单介绍过,数据表按照时间生成,每天一张,每张表大约80W+数据量,加上需要获取多日的数据,例如获取连续5日登陆的用户。 需求:玩家留存率、时间可选,开始时间以及结束时间 表头包含:新注册用户数量、次日留存、2日留存…30日留存 分析: 留存率公式:第N日该批用户登录数量/当日注册用户数量 log表数据结构比较特殊,所有的log表字段一致,只用type去区分,字段为id、插入时间、用户ID、用户名称、type、参数1…参数20,实际参数代表的意义以及type的意思均为代码中常量定义。 因此如果单纯用mysql语句去操作,涉及跨表、联合、join等操作,实际测试单一一条语句均要超过6s以上,这种情况是完全无法接受的,因为查询时间可选,那么就导致如果筛选多日,随随便便都需要等待1分钟以上。 所以最终选择只用mysql去做最简单的查询操作,包含上尽可能多的的where语句限定并group by特定的key,其余全部使用php去操作数组完成,最后成果为每一条独立的sql语句耗时0.2-0.3s左右(全表无索引),包含php操作后最后输出单日数据约1s左右,因为此后台只是内部使用,已基本满足要求。 1.非常好用的Laravel内置数组辅助函数,array_pluck() array_pluck( array $array , string $value

PHP array_change_key_case() 函数

心不动则不痛 提交于 2019-11-30 07:53:28
实例 将数组的所有的键转换为大写字母: <?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); print_r(array_change_key_case($age,CASE_UPPER)); ?>    定义和用法 array_change_key_case() 函数将数组的所有的键都转换为大写字母或小写字母。 语法 array_change_key_case( array , case ); 参数 描述 array 必需。规定要使用的数组。 case 可选。可能的值: CASE_LOWER - 默认值。将数组的键转换为小写字母。 CASE_UPPER - 将数组的键转换为大写字母。 技术细节 返回值: 返回带有小写字母的键的数组,或者返回带有大写字母的键的数组,或者如果 array 不是一个数组则返回 FALSE。 PHP 版本: 4.2+ 大理石平台维修 来源: https://www.cnblogs.com/furuihua/p/11573599.html

PHP array_column() 函数

孤人 提交于 2019-11-30 07:53:21
定义和用法 array_column() 返回输入数组中某个单一列的值。 语法 array_column( array , column_key , index_key ); 参数 描述 array 必需。指定要使用的多维数组(记录集)。 column_key 必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合index_key 参数来重置数组键的时候,非常管用)。 index_key 可选。作为返回数组的索引/键的列。 技术细节 返回值: 返回一个数组,数组的值为输入数组中某个单一列的值。 PHP 版本: 5.5+ 来源: https://www.cnblogs.com/furuihua/p/11573619.html

PHP三小时入门笔记(2014-9-3)

放肆的年华 提交于 2019-11-30 06:35:59
PHP三小时入门笔记( 2014-9-3 ) 1、 PHP 是什么:编程语言 2、 PHP 代码是运行在服务端的 3、行该脚本后,客户端就能接收到其结果,但他们无法得知其背后的代码是如何运作的 4、甚至可以将 web 服务器设置成让 PHP 来处理所有的 HTML 文件,这么一来,用户就无法得知服务端到底做了什么 5、 PHP 还能被用来动态输出图像、 PDF 文件甚至 Flash 动画(使用 libswf 和 Ming ) 6、 PHP 主要是用于服务端的脚本程序,因此可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies 。 7、 PHP 脚本主要用于以下三个领域: 7.1服务端脚本:开展这项工作需要具备以下三点: PHP 解析器( CGI 或者服务器模块)、 web 服务器和 web 浏览器 7.2命令行脚本:只需要 PHP 解析器来执行 7.3编写桌面应用程序:可以利用 PHP-GTK 来编写这些程序,还可以编写跨平台的应用程序 能干什么: WEB 开发,开发网站 apache,php,mysql的关系 apache:音译为阿帕奇 , 是世界使用排名第一的 Web 服务器软件 Apache HTTP Server(简称 Apache )是 Apache 软件基金会的一个开放源码的网页服务器 PHP(外文名

PHP数组基础知识总结以及排序

不打扰是莪最后的温柔 提交于 2019-11-29 17:18:34
最近刚刚实习,经常用到php的数组,所以总结一下,以后不用随时去乱搜。 一:基础知识 PHP支持数字索引数组和关联数组,关联数组允许使用更有意义的数据(如字符串)作为索引。以及允许间隔性地使用数组和字符串作为数组的索引。 1、数组定义: $arr = [1,2,3,4];//数字索引数组 php5.4以上提供的新方式 $arr = ['a'=>1,'b'=>2];//关联索引数组 $arr = array(1,2,3,4); $arr = array('a'=>1,'b'=>2); $arr = range(1,n);//自动创建1~n的数字数组 PHP的数组不需要预先初始化或创建,在第一次使用时就会自动的创建如: $arr['a'] = 1; $arr['b'] = 2; $arr['c'] = 3; 2、数组的遍历 for循环 只能用于有序的数字索引数组 for($i = 0;$i<count($arr);$i++){ echo $arr[$i]; } foreach for($arr as $key=>$value){ echo $key."--".$value; } each while($ele = each($arr)){ echo ele['key']."--".ele['value']; } list(常用) reset($arr);//重置指针 while

php数组打乱顺序

流过昼夜 提交于 2019-11-29 13:59:55
shuffle() PHP shuffle() 函数随机排列数组单元的顺序(将数组打乱)。本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。 语法: bool shuffle ( array &array ) 例子1: <?php $arr = range(1,8); print_r($arr); echo '<br />'; shuffle($arr); print_r($arr); ?>    输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 ) Array ( [0] => 6 [1] => 1 [2] => 3 [3] => 2 [4] => 5 [5] => 7 [6] => 8 [7] => 4 )   需要说明的是,每次刷新页面,shuffle($arr) 后的 print_r($arr) 结果都是不一样的。而自 PHP 4.2.0 起,也不再需要用 srand() 等函数给随机数发生器播种而由系统自动完成。 例子2:使用关联数组 <?php $arr = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); shuffle($arr); print_r($arr); ?>    输出:  

PHP性能优化利器:生成器 yield理解

杀马特。学长 韩版系。学妹 提交于 2019-11-29 01:42:34
如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。 优点 直接讲概念估计你听完还是一头雾水,所以我们先来说说优点,也许能勾起你的兴趣。那么生成器有哪些优点,如下: 生成器会对PHP应用的性能有非常大的影响 PHP代码运行时节省大量的内存 比较适合计算大量的数据 那么,这些神奇的功能究竟是如何做到的?我们先来举个例子。 概念引入 首先,放下生成器概念的包袱,来看一个简单的PHP函数: function createRange($number){ $data = []; for($i=0;$i<$number;$i++){ $data[] = time(); } return $data; } 这是一个非常常见的PHP函数,我们在处理一些数组的时候经常会使用。这里的代码也非常简单: 我们创建一个函数。 函数内包含一个 for 循环,我们循环的把当前时间放到 $data 里面 for 循环执行完毕,把 $data 返回出去。 下面没完,我们继续。我们再写一个函数,把这个函数的返回值循环打印出来: $result = createRange(10); // 这里调用上面我们创建的函数 foreach($result as