
PHP多维数组的值进行合并
array(3){[0]=>array(2){["uid"]=>string(1)"1"["name"]=>string(15)"aaaa"}[1]=>array(2){...
array(3) {
[0] => array(2) {
["uid"] => string(1) "1"
["name"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "xxxx"
}
[2] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "aaaa"
}
}
现在有这么一个数组,我想把uid值相同的name值进行合并,输出成下面的数组就可以了
array(3) {
[0] => array(2) {
["uid"] => string(1) "1"
["name"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "xxxx,aaaa"
}
}
array(2) {
[0] => array(9) {
["uid"] => string(1) "1"
["username"] => string(5) "admin"
["password"] => string(32) "21232f297a57a5a743894a0e4a801fc3"
["name"] => string(15) "安安"
}
[1] => array(9) {
["uid"] => string(1) "2"
["username"] => string(4) "user"
["password"] => string(32) "ee11cbb19052e40b07aac0ca060c23ee"
["name"] => string(15) "西西"
}
}
array(2) {
[0] => array(2) {
["uid"] => int(1)
["role"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => int(2)
["role"] => string(31) "xxxx,aaaa"
}
我现在想把下面这个数组按照uid相同的值把role加如到上面的数组中,应该怎么做啊?谢谢! 展开
[0] => array(2) {
["uid"] => string(1) "1"
["name"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "xxxx"
}
[2] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "aaaa"
}
}
现在有这么一个数组,我想把uid值相同的name值进行合并,输出成下面的数组就可以了
array(3) {
[0] => array(2) {
["uid"] => string(1) "1"
["name"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => string(1) "2"
["name"] => string(15) "xxxx,aaaa"
}
}
array(2) {
[0] => array(9) {
["uid"] => string(1) "1"
["username"] => string(5) "admin"
["password"] => string(32) "21232f297a57a5a743894a0e4a801fc3"
["name"] => string(15) "安安"
}
[1] => array(9) {
["uid"] => string(1) "2"
["username"] => string(4) "user"
["password"] => string(32) "ee11cbb19052e40b07aac0ca060c23ee"
["name"] => string(15) "西西"
}
}
array(2) {
[0] => array(2) {
["uid"] => int(1)
["role"] => string(15) "aaaa"
}
[1] => array(2) {
["uid"] => int(2)
["role"] => string(31) "xxxx,aaaa"
}
我现在想把下面这个数组按照uid相同的值把role加如到上面的数组中,应该怎么做啊?谢谢! 展开
展开全部
这个没有现成的函数可以用 只能写代码做了
$arrResult = array();
foreach ($arr as $oneItem) {
$arr[$oneItem['uid']] = array('uid' => $oneItem['uid'], 'name' => (array_key_exists('name', $arr[$oneItem['uid']]) && $arr[$oneItem['uid']]['name'] != '') ? $oneItem['uid']]['name'] . ',' . $oneItem['name'] : $oneItem['name']);
}
$arr = array();
foreach ($arrResult as $oneUid) {
$arr[] = $oneUid;
}
$arr是你原来的数组变量 最后得到$arr是结果
$arrResult = array();
foreach ($arr as $oneItem) {
$arr[$oneItem['uid']] = array('uid' => $oneItem['uid'], 'name' => (array_key_exists('name', $arr[$oneItem['uid']]) && $arr[$oneItem['uid']]['name'] != '') ? $oneItem['uid']]['name'] . ',' . $oneItem['name'] : $oneItem['name']);
}
$arr = array();
foreach ($arrResult as $oneUid) {
$arr[] = $oneUid;
}
$arr是你原来的数组变量 最后得到$arr是结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$array=array(
array("uid" =>1,"name" => "aaaa"),
array("uid" =>2,"name" => "xxxx"),
array("uid" =>2,"name" => "aaaa"),
array("uid" =>1,"name" => "bbb"),
array("uid" =>1,"name" => "ccc"),
array("uid" =>1,"name" => "sss"),
array("uid" =>2,"name" => "aaasa"),
array("uid" =>2,"name" => "aasaasa"),
array("uid" =>2,"name" => "asasaa"),
array("uid" =>2,"name" => "asaaas"),
array("uid" =>2,"name" => "aasaas")
);
foreach($array as $key=>$row){
foreach($array as $kee=>$rws){
if($kee > $key){
if($row['uid'] == $rws['uid']){
$row['name'] = $row['name'].','.$rws['name'];
unset($array[$kee]);
}
$array[$key]['name']=$row['name'];
}
}
}
array("uid" =>1,"name" => "aaaa"),
array("uid" =>2,"name" => "xxxx"),
array("uid" =>2,"name" => "aaaa"),
array("uid" =>1,"name" => "bbb"),
array("uid" =>1,"name" => "ccc"),
array("uid" =>1,"name" => "sss"),
array("uid" =>2,"name" => "aaasa"),
array("uid" =>2,"name" => "aasaasa"),
array("uid" =>2,"name" => "asasaa"),
array("uid" =>2,"name" => "asaaas"),
array("uid" =>2,"name" => "aasaas")
);
foreach($array as $key=>$row){
foreach($array as $kee=>$rws){
if($kee > $key){
if($row['uid'] == $rws['uid']){
$row['name'] = $row['name'].','.$rws['name'];
unset($array[$kee]);
}
$array[$key]['name']=$row['name'];
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for($i = 0; $i < count($array); $i++){
for($j = $i+1; $j<count($array);$j++){
if(isset($array[$j]) && $array[$i]['uid'] == $array[$j]['uid']){
$array[$i]['name'] .= $array[$j]['name'];
unset($array[$j]);
}
}
$new_array[] = $array[$i];
}
print_r($new_array);
for($j = $i+1; $j<count($array);$j++){
if(isset($array[$j]) && $array[$i]['uid'] == $array[$j]['uid']){
$array[$i]['name'] .= $array[$j]['name'];
unset($array[$j]);
}
}
$new_array[] = $array[$i];
}
print_r($new_array);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
foreach($array as $each){
$tmparr[$each['uid']][] = $each['name'];
}
foreach($tmparr as $n=>$each){
$resultarr[$n-1]['uid'] = $n;
$resultarr[$n-1]['name'] = implode(",",$each);
}
print_r($resultarr);
$tmparr[$each['uid']][] = $each['name'];
}
foreach($tmparr as $n=>$each){
$resultarr[$n-1]['uid'] = $n;
$resultarr[$n-1]['name'] = implode(",",$each);
}
print_r($resultarr);
更多追问追答
追问
谢谢,你的方法是我想要的,我现在又有个问题,能不能也帮我解决一下,谢谢!
追答
foreach($uparr as $n=>$each_up){ //$uparr是你上面什么西西的数组
foreach($downarr as $each_down){ //downarr是你下面有role的数组
if($each_up['uid']==$each_down['uid']){
$uparr[$n]['role'] = $each_down['role'];
break;
}
}
}
print_r($uparr);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询