在线等 PHP将同一个多维数组中的某一个元素(该元素是数组)下的数据合并成一个元素

2025-03-18 18:00:13
推荐回答(3个)
回答1:

$ary = array(); //你的数组
$temp = array ();
//把想要的数组放到 $temp
foreach($ary as $key=>$val) {
if(is_array($val['data'])) {
foreach ($val['data'] as $k=>$v) {
$temp[] = $v;
}
}
}

最后一步,所收集到的数组放到第一个元素中

$ary[0]['data'] = $temp;

应该没有问题的吧。你试一下。如果不行。欢迎呼叫我。

回答2:

[totalPages] => 1
[totalRows] => 3
[nowPage] => 1
[html] =>
这四个值是拿第一个元素的吗?,不需要加?

不知道这样合并有什麽用。代码如下。

$a = array(
array(
'count'=>3,
'totalPages'=>1,
'totalRows'=>3,
'nowPage'=>1,
'html'=>'',
'data'=>array(
array(
'sid'=>35,
'mid'=>150,
'uid'=>1,
'flag'=>'photo',
'title'=>1
),
array(
'sid'=>18,
'mid'=>150,
'uid'=>1,
'flag'=>'photo',
'title'=>1
)
)
),
array(
'count'=>1,
'totalPages'=>1,
'totalRows'=>1,
'nowPage'=>1,
'html'=>'',
'data'=>array(
array(
'sid'=>24,
'mid'=>242,
'uid'=>253,
'flag'=>'blog',
'title'=> '博文第一条'
)
)
)
);

echo '原始数组
';
echo '

';
print_r($a);
echo '
';

$b = array();
$b[0]['totalPages'] = $a[0]['totalPages'];
$b[0]['totalRows'] = $a[0]['totalRows'];
$b[0]['nowPage'] = $a[0]['nowPage'];
$b[0]['html'] = $a[0]['html'];

foreach($a as $data){
$b[0]['count'] = isset($b[0]['count'])? $b[0]['count']+$data['count'] : $data['count'];
if(!isset($b[0]['data'])){
$b[0]['data'] = array();
}
foreach($data['data'] as $val){
array_push($b[0]['data'], $val);
}
}

echo '合并后';
echo '
';
print_r($b);
echo '
';
?>

回答3:

$arr = array(...你上边的数组...);
$newarr = array();
foreach ($arr as $k=>$v){
$newarr[0][$v['count']] = (isset($newarr[0][$v['count']]) ? $newarr[0][$v['count']]+$v['count'] : $v['count']);
...
$newarr[0][$v['data']] = (isset($newarr[0][$v['data']]) ? array_merge($newarr[0][$v['data']],$v['data']) : $v['data']);
}
var_dump($newarr);
手写伪代码,不保证正确,仅供思路参考