二维数组合并 关键字
来源:互联网 发布:网络销售公司有些什么 编辑:程序博客网 时间:2024/05/17 22:20
<?php
$arr1 = array(
'0' => array(
'userId' => 90183507,
'date' => 94000.00,
'num' => '2013-6-14'),
'1' => array(
'userId' => 90889536,
'date' => 900,
'num' => '2013-6-14'),
'2' => array(
'userId' => 90183351,
'date' => 900,
'num' => '2013-6-14'),
'3' => array(
'userId' => 90172118,
'date' => 900,
'num' => '2013-6-14'),
'4' => array(
'userId' => 90171857,
'date' => 9000.00,
'num' => '2013-6-14'),
'5' => array(
'userId' => 90178857,
'date' => 900.00,
'num' => '2013-6-14'),
);
$arr2 = array(
'0' => array(
'userId' => 90889536,
'date' => 9400.00,
'num' => '2013-6-14'),
'1' => array(
'userId' => 90183507,
'date' => 90,
'num' => '2013-6-14'),
'2' => array(
'userId' => 90183351,
'date' => 90,
'num' => '2013-6-14'),
'3' => array(
'userId' => 90172118,
'date' => 90,
'num' => '2013-6-14'),
'4' => array(
'userId' => 90171857,
'date' => 900.00,
'num' => '2013-6-14'),
'5' => array(
'userId' => 90571857,
'date' => 900.00,
'num' => '2013-6-15'),
);
function arrayMerge(&$array1, &$array2) {
$num1 = count($array1);
$num2 = count($array2);
$newarr = array();
$m=0;
for ($i = 0; $i < $num1; $i++) {
$k = 0;
for ($j = 0; $j < $num2; $j++) {
if (!(strcasecmp($array1[$i]['userId'], $array2[$j]['userId']))) {
$newarr[$i]['userId'] = $array1[$i]['userId'];
$newarr[$i]['date'] = $array1[$i]['date'] + $array2[$j]['date'];
$newarr[$i]['num'] = $array1[$i]['num'];
$array2[$j]['userId']=0;
$k = 1;
}
}if ($k == 0) {
$newarr[$i]['userId'] = $array1[$i]['userId'];
$newarr[$i]['date'] = $array1[$i]['date'];
$newarr[$i]['num'] = $array1[$i]['num'];
}
}
for($j = 0; $j < $num2; $j++){
if($array2[$j]['userId']!=0){
$newarr[$num1+$m]['userId'] = $array2[$j]['userId'];
$newarr[$num1+$m]['date'] = $array2[$j]['date'];
$newarr[$num1+$m]['num'] = $array2[$j]['num'];
$m++;
}
}
return $newarr;
}
$a = arrayMerge($arr1, $arr2);
print_r($a);
?>
二维数组合并,通过userid字段进行数组连接,合成新的二维数组。当$arr1,$arr2元素个数不相同,把不能匹配的元素单独添加到新的二维数组中。
输出结果:
Array (
[0] => Array ( [userId] => 90183507 [date] => 94090 [num] => 2013-6-14 )
[1] => Array ( [userId] => 90889536 [date] => 10300 [num] => 2013-6-14 )
[2] => Array ( [userId] => 90183351 [date] => 990 [num] => 2013-6-14 )
[3] => Array ( [userId] => 90172118 [date] => 990 [num] => 2013-6-14 )
[4] => Array ( [userId] => 90171857 [date] => 9900 [num] => 2013-6-14 )
[5] => Array ( [userId] => 90178857 [date] => 900 [num] => 2013-6-14 )
[6] => Array ( [userId] => 90571857 [date] => 900 [num] => 2013-6-15 ) )
参考:http://bbs.csdn.net/topics/360243533
- 二维数组合并 关键字
- 二维数组关键字查找
- php 二维|数组|合并 多个一维数组合并成二维数组
- 二维数组相同部分合并
- 二维数组合并和排序
- php多个一维数组合并成二维数组
- 二维数组相同数组的字段 合并
- PHP根据二维数组的某键值合并二维数组
- 两个二维数组进行合并成一个二维数组
- 简单的二维数组数据合并
- 将一个二维数组合并成一个一维数组
- 把一维数组合并成二维数组
- 二维数组的合并为有序的一维数组
- 对二维数组某一个字段相同的数组合并起来
- php实现多个一维数组对应合并成二维数组
- 将一个二维数组合并成一个一维数组
- php合并两个二维数组,二维数组按键名排序,删除二维数组元素,二维数组按相同字段合并)
- 数组合并3个一维数组合并成一个新的二维数组
- CCUserDefault crash后数据不保存问题
- 一段隐藏显示tabbar的代码
- iPhone程序包结构
- 电子商务数据运营的五大应用
- nginx sendfile tcp_nopush tcp_nodelay参数解释
- 二维数组合并 关键字
- CFileDialog用法
- 屏蔽UITextView上的选择,复制粘贴
- awk 数组用法【精华贴】
- 查找当前目录下的及其子目录中指定的文件
- MySql自动类型转换 MySql insert into select 带来的问题
- Tornado 之 IOLoop类分析
- 关于刷新表的某一行,某个区,整个表的方法
- error while loading shared libraries的解決方法