php如何操作数组遍历追加数据

规则:用数组1中的id匹配数组2中的uid
如果数组2中的uid和数组1中的uid相同的话
那就让数组2中的信息显示在数组1中uid相同的下面(独立的一个数组内)
数组1每个子数组下面都要显示3条数组2的信息
uid和uid相同的优先显示
uid和uid相同大于3条的话就只显示3条
小于3条时用其余的从小到达显示补全
求大神们解答

数组1
$arr1 = array(
array('uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
array('uid'=>2,'times'=>'2014-02-26','counts'=>'17'),
array('uid'=>3,'times'=>'2014-02-27','counts'=>'6')
);

数组2
$arr2 = array(
array('id'=>1,'uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
array('id'=>2,'uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
array('id'=>3,'uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
array('id'=>4,'uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
array('id'=>5,'uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
array('id'=>6,'uid'=>4,'times'=>'2014-02-28','counts'=>'14'),
array('id'=>7,('uid'=>4,'times'=>'2014-02-28','counts'=>'13'),
array('id'=>8,'uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
array('id'=>9,'uid'=>1,'times'=>'2014-02-28','counts'=>'11'),
array('id'=>10,'uid'=>3,'times'=>'2014-02-28','counts'=>'10')
);

最后生成一个这样的数组
Array
(
[0] => Array
(
[arr1] => Array
(
array('id'=>1,'times'=>'2014-02-25','counts'=>'19'),
)

[arr2] => Array
(
array('id'=>1,'uid'=>1,'times'=>'2014-02-25','counts'=>'19'),
array('id'=>2,'uid'=>1,'times'=>'2014-02-26','counts'=>'17'),
array('id'=>3,'uid'=>1,'times'=>'2014-02-27','counts'=>'16'),
)

)
[1] => Array
(
[arr1] => Array
(
array('id'=>2,'times'=>'2014-02-26','counts'=>'17'),
)

[arr2] => Array
(
array('id'=>5,'uid'=>1,'times'=>'2014-02-28','counts'=>'15'),
array('id'=>8,'uid'=>1,'times'=>'2014-02-28','counts'=>'12'),
array('id'=>9,'uid'=>1,'times'=>'2014-02-28','counts'=>'11'),

)

)
[2] => Array
(
[arr1] => Array
(
array('id'=>3,'times'=>'2014-02-27','counts'=>'6')
)

[arr2] => Array
(
array('id'=>4,'uid'=>3,'times'=>'2014-02-28','counts'=>'18'),
array('id'=>10,'uid'=>3,'times'=>'2014-02-28','counts'=>'10'),
array('id'=>6,'uid'=>4,'times'=>'2014-02-28','counts'=>'14'),

)

)
)

可以遍历两次$a, 第一次取出所有的父级栏目,放入$newarr中,第二次将子栏目放入对应
的父级栏目数组中, 最后使用$newarr就行
不过这是建立在只有二级栏目的基础上,如果有三级栏目的话就还要麻烦些了

$newarr = array();
foreach ($a as $key => $value)
{
if($value['fID'] == 0)
{
$cid = $value['cID'];
$newarr[$cid] = $value;
unset($a[$key]);
}
}

foreach ($a as $key => $value)
{
if($value['fID'] != 0)
{
$fid = $value['fID'];
$newarr[$fid]['zilanmu'][] = $value;
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

php如何操作数组遍历追加数据
可以遍历两次$a, 第一次取出所有的父级栏目,放入$newarr中,第二次将子栏目放入对应 的父级栏目数组中, 最后使用$newarr就行 不过这是建立在只有二级栏目的基础上,如果有三级栏目的话就还要麻烦些了 newarr = array();foreach ($a as $key => $value){ if($value['fID'] == 0){ ci...

PHP如何将下面数组遍历,插入数据库
有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile 还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,可以很简单的实现大批量数组数据的一次性插入。[php] view plaincopy statement = "INSERT INTO table (title, type, customer...

如何让一个php数组里面的值,循环累加 array(100,101,102...)
range(100, 199) ;这样就可以了,如果你想累加2,就是array(100,102,...),那么就是:range(100, 199, 2);

php中遍历数组方法
遍历数组有多种实现方法:1、连续索引的数组:实现连续数组的遍历很简单,因为数组的索引是连续的(0 1 2),所以我们可以首先用count()函数计算出数组中元素的个数,然后建立一个for循环,如下:$subject=array("maths","english","physics");$num_elements=count($subject); \/\/这时$num_elements的...

PHP遍历数组的几种方法
一、使用for语句循环遍历数组;二、使用foreach语句遍历数组;三、联合使用list()、each()和while循环遍历数组。这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。希望回答对你有帮助,如果有疑问,请继续追问 ...

php 同时遍历多个数组并放入一个新的数组里
几个array我都以驼峰式重命名,代码如下 arrAuthor = [];foreach($arrTitle as $key => $value){ array_push($arrAuthor, [ 'title'=> $value, 'author'=> $arrName[$key], 'order'=> $arrOrder[$key] ]);} ...

php 数组追加
在PHP里面,往数组中追加元素最简单的方法是使用[]赋值,例如需要在$arr添加一条123的语句是$arr[]=123,可以参考下面的代码:<?php arr=[123,456];print_r($arr);arr[]=789;print_r($arr);?>

php对数据进行数据处理?
数组操作:PHP中可以使用数组来存储和处理数据。可以使用数组函数来对数组进行操作,例如增加、删除、查找、排序等。例如,可以使用以下代码将一个数组按照某个键值进行排序:php 复制 arr = array(array('name' => 'Alice', 'age' => 20),array('...

php判断数组重复,并把重复的数据相加
遍历一次就搞定了 既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key sourceArr = array(); \/\/ 这里就是你原始数据的数组$newArr = array(); \/\/ 这里是相加后处理过的数组,以单号为keyforeach ($sourceArr as $v) { if (array_key_exists($v['id'], $...

PHP语言中 foreach 遍历数组用法
第一种格式遍历给定的 $a 数组。每次循环中,当前单元的值被赋给 $b 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。自 PHP 5 起,可以很容易地通过在 $b 之前加上 & 来修改数组的单元。此方法将以引用赋值而不是拷贝一个值。例如:<?php arr = array(1, 2, 3, ...

相似回答