php二维数组,key的值都一样,value的不一样,怎么合并。

array(3){[0]=>array(2){["pid"]=>string(1)"6"["title"]=>string(24)"/thumb_525d615760eb... array(3) {
[0] => array(2) {
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615760eb0.jpg"
}
[1] => array(2) {
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615708f2d.jpg"
}
[2] => array(2) {
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615699a77.jpg"
}
}

想搞成的样子是
pid=6
title=/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg,.......
展开
 我来答
yimengshixin
2013-10-16 · TA获得超过224个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:98.5万
展开全部
/**
我的想法是这样的,将原数组遍历合并,将相同pid的项形成一个数组,然后就是将同一pid数组对应的子数组通过字符串函数join进行分隔
*/
$arr = array(array('pid'=>6, 'title'=>'/thumb_525d615760eb0.jpg'), 
  array('pid'=>6, 'title'=>'/thumb_525d615708f2d.jpg'),
      array('pid'=>6, 'title'=>'/thumb_525d615699a77.jpg'),
);
$newarr = $returnarr = array();
foreach($arr as $val)
{
$newarr[$val['pid']][] = $val['title'];
}
//输出:$newarr
array (size=1)
  6 => 
    array (size=3)
      0 => string '/thumb_525d615760eb0.jpg' (length=24)
      1 => string '/thumb_525d615708f2d.jpg' (length=24)
      2 => string '/thumb_525d615699a77.jpg' (length=24)

foreach($newarr as $k=>$v)
{
$title = join(',', $v);
$returnarr[] = array('pid'=>$k, 'title'=>$title); //如果需要返回一维数组:直                                                      接将$returnarr[]改成$returnarr
}
var_dump($returnarr);
//输出:
array (size=1)
  0 => 
    array (size=2)
      'pid' => int 6
      'title' => string '/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg' (length=74)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘鹏云1123
2013-10-16 · TA获得超过168个赞
知道小有建树答主
回答量:290
采纳率:57%
帮助的人:63.8万
展开全部

你是想把它合并成一维数组,全部叠加在一起?

就像这个样子:

array(
['pid']    => 6,
['title']=> '/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg'
)

你的第一个值一直是6吗?还是都叠加在一起,变成666?

如果是就一个6的话,可以这样:

<?php
$arr = array(3) {
  [0] => array(2) {
    ["pid"] => string(1) "6"
    ["title"] => string(24) "/thumb_525d615760eb0.jpg"
  }
  [1] => array(2) {
    ["pid"] => string(1) "6"
    ["title"] => string(24) "/thumb_525d615708f2d.jpg"
  }
  [2] => array(2) {
    ["pid"] => string(1) "6"
    ["title"] => string(24) "/thumb_525d615699a77.jpg"
  }
}


//以上是你自己的,
//加上我的::

$new_arr = array();
foreach($arr as $key=>$value){
    for($i = 0;$i <= count_array($value);$i++){
        $new_arr[$i] = .$value[$i];
    }    


}


这个$new_arr数组里面就把数据整合好了



?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浮华out
2013-10-16 · TA获得超过101个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:119万
展开全部
$arr = array(array('pid'=>6,'title'=>'/thumb_...', ...));
$tmp = array();
foreach($arr as $val){
    array_push($tmp,$val['title']);
}
$res = join(',',$tmp);
print_r($res);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼狼手
2013-10-16 · TA获得超过189个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:142万
展开全部
遍历2维数组,按照pid=>title生成一个新的1维数组
更多追问追答
追问
怎么生成
追答
...你这完全不懂啊..遍历数组的时候将没个数组的pid提取出来写入一个新数组.$newarray[$pid].=$title;
遍历完你就得到一个新的数组了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式