php数组合并函数(php数组函数有哪些)
大家好,如果您还对php数组合并函数不太了解,没有关系,今天就由本站为大家分享php数组合并函数的知识,包括php数组函数有哪些的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
PHP将两个关联数组合并函数提高函数效率
在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:
使用下面的字节写的函数可以解决
从数据库中取出来的数据总是或多或少不符合我们心目中的数据结构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:
代码如下:
$test1= Array(0= Array('id'= 9478137,
'create_time'= 1394760724),
1= Array('id'= 9478138,
'create_time'= 1394760725),
2= Array('id'= 9478138,
'create_time'= 1394760725));
$test2= array(0= array('id'= 9478137,
'message'='love you'),
1= array('id'= 9478138,
'message'='miss you'));
如果要将这两个数组,类似于sql中的left join关联起来我们用什么函数呢?额我没有找见就自己写了
刚开始的时候,用的是嵌套循环:效率低下
代码如下:
function _mergerArray($array1,$array2,$field1,$field2=''){
$ret= array();
foreach($array1 as$key1=$value1){
foreach($array2 as$key2=$value2){
if($value1[$field1]==$value2[$field2]){
$ret[$key1]= array_merge($value1,$value2);
}
}
}
return$ret;
}
改进后的办法,使用数组下标,使用两次循环:形成类似于left join的方式
代码如下:
$test1= Array(0= Array('id'= 9478137,
'create_time'= 1394760724),
1= Array('id'= 9478138,
'create_time'= 1394760725),
2= Array('id'= 9478138,
'create_time'= 1394760725));
$test2= array(0= array('id'= 9478137,
'message'='love you'),
1= array('id'= 9478138,
'message'='miss you'));
function _mergerArray($array1,$array2,$field1,$field2=''){
$ret= array();
//使用数组下标的办法
foreach($array2 as$key=$value){
$array3[$value[$field1]]=$value;
}
foreach($array1 as$key=$value){
$ret[]= array_merge($array3[$value[$field1]],$value);
}
return$ret;
}
$ret= _mergerArray($test1,$test2,'id','id');
print_r($ret);exit;
打印出来结果如下:
代码如下:
Array
([0]= Array
([id]= 9478137
[message]= love you
[create_time]= 1394760724)
[1]= Array
([id]= 9478138
[message]= miss you
[create_time]= 1394760725)
[2]= Array
([id]= 9478138
[message]= miss you
[create_time]= 1394760725))
相当于left join了吧?
php 两个普通数组合并为一个普通数组
php两个普通数组合并为一个普通数组可以参考下面的代码:
<?php
$a=array(1,2,3,4,5);
$b=array(6,7,8,9,10);
$c=array_merge($a,$b);
print_r($c);
?>
注:当被合并的数组中有一个数组为空时,可能会出现合并后的数组也为空。
扩展资料:
PHP常用函数
printf()函数输出格式化的字符串。
print()函数输出一个或多个字符串。
parse_str()函数把查询字符串解析到变量中。
ord()函数返回字符串第一个字符的 ASCII值。
number_format()函数通过千位分组来格式化数字。
nl2br()函数在字符串中的每个新行(
)之前插入 HTML换行符(<br/>)。
nl_langinfo()函数返回指定的本地信息。
参考资料来源:百度百科-PHP(超文本预处理器)
php array怎么使用
PHP Array简介
array函数允许您对数组进行操作。
PHP支持单维和多维的数组。同时提供了用数据库查询结果来构造数组的函数。
安装
array函数是 PHP核心的组成部分。无需安装即可使用这些函数。
PHP Array函数
PHP:指示支持该函数的最早的 PHP版本。
函数
描述
PHP
array()创建数组。 3
array_change_key_case()返回其键均为大写或小写的数组。 4
array_chunk()把一个数组分割为新的数组块。 4
array_combine()通过合并两个数组来创建一个新数组。 5
array_count_values()用于统计数组中所有值出现的次数。 4
array_diff()返回两个数组的差集数组。 4
array_diff_assoc()比较键名和键值,并返回两个数组的差集数组。 4
array_diff_key()比较键名,并返回两个数组的差集数组。 5
array_diff_uassoc()通过用户提供的回调函数做索引检查来计算数组的差集。 5
array_diff_ukey()用回调函数对键名比较计算数组的差集。 5
array_fill()用给定的值填充数组。 4
array_filter()用回调函数过滤数组中的元素。 4
array_flip()交换数组中的键和值。 4
array_intersect()计算数组的交集。 4
array_intersect_assoc()比较键名和键值,并返回两个数组的交集数组。 4
array_intersect_key()使用键名比较计算数组的交集。 5
array_intersect_uassoc()带索引检查计算数组的交集,用回调函数比较索引。 5
array_intersect_ukey()用回调函数比较键名来计算数组的交集。 5
array_key_exists()检查给定的键名或索引是否存在于数组中。 4
array_keys()返回数组中所有的键名。 4
array_map()将回调函数作用到给定数组的单元上。 4
array_merge()把一个或多个数组合并为一个数组。 4
array_merge_recursive()递归地合并一个或多个数组。 4
array_multisort()对多个数组或多维数组进行排序。 4
array_pad()用值将数组填补到指定长度。 4
array_pop()将数组最后一个单元弹出(出栈)。 4
array_product()计算数组中所有值的乘积。 5
array_push()将一个或多个单元(元素)压入数组的末尾(入栈)。 4
array_rand()从数组中随机选出一个或多个元素,并返回。 4
array_reduce()用回调函数迭代地将数组简化为单一的值。 4
array_reverse()将原数组中的元素顺序翻转,创建新的数组并返回。 4
array_search()在数组中搜索给定的值,如果成功则返回相应的键名。 4
array_shift()删除数组中的第一个元素,并返回被删除元素的值。 4
array_slice()在数组中根据条件取出一段值,并返回。 4
array_splice()把数组中的一部分去掉并用其它值取代。 4
array_sum()计算数组中所有值的和。 4
array_udiff()用回调函数比较数据来计算数组的差集。 5
array_udiff_assoc()带索引检查计算数组的差集,用回调函数比较数据。 5
array_udiff_uassoc()带索引检查计算数组的差集,用回调函数比较数据和索引。 5
array_uintersect()计算数组的交集,用回调函数比较数据。 5
array_uintersect_assoc()带索引检查计算数组的交集,用回调函数比较数据。 5
array_uintersect_uassoc()带索引检查计算数组的交集,用回调函数比较数据和索引。 5
array_unique()删除数组中重复的值。 4
array_unshift()在数组开头插入一个或多个元素。 4
array_values()返回数组中所有的值。 4
array_walk()对数组中的每个成员应用用户函数。 3
array_walk_recursive()对数组中的每个成员递归地应用用户函数。 5
arsort()对数组进行逆向排序并保持索引关系。 3
asort()对数组进行排序并保持索引关系。 3
compact()建立一个数组,包括变量名和它们的值。 4
count()计算数组中的元素数目或对象中的属性个数。 3
current()返回数组中的当前元素。 3
each()返回数组中当前的键/值对并将数组指针向前移动一步。 3
end()将数组的内部指针指向最后一个元素。 3
extract()从数组中将变量导入到当前的符号表。 3
in_array()检查数组中是否存在指定的值。 4
key()从关联数组中取得键名。 3
krsort()对数组按照键名逆向排序。 3
ksort()对数组按照键名排序。 3
list()把数组中的值赋给一些变量。 3
natcasesort()用“自然排序”算法对数组进行不区分大小写字母的排序。 4
natsort()用“自然排序”算法对数组排序。 4
next()将数组中的内部指针向前移动一位。 3
pos() current()的别名。 3
prev()将数组的内部指针倒回一位。 3
range()建立一个包含指定范围的元素的数组。 3
reset()将数组的内部指针指向第一个元素。 3
rsort()对数组逆向排序。 3
shuffle()把数组中的元素按随机顺序重新排列。 3
sizeof() count()的别名。 3
sort()对数组排序。 3
uasort()使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。 3
uksort()使用用户自定义的比较函数对数组中的键名进行排序。 3
usort()使用用户自定义的比较函数对数组中的值进行排序。 3
php数组合并函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php数组函数有哪些、php数组合并函数的信息别忘了在本站进行查找哦。