• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数组复建

php 搞代码 4年前 (2022-01-24) 21次浏览 已收录 0个评论

数组重构

本帖最后由 memory_qian 于 2015-06-03 13:16:30 编辑

Array<br />(<br />    [0] => Array<br />        (<br />            [title] => 111<br />            [name] => 上海<br />        )<br /><br />    [1] => Array<br />        (<br />            [title] => 111<br />            [name] => 江苏<br />        )<br /><br />    [2] => Array<br />        (<br />            [title] => dd<br />            [name] => 上海<br />        )<br /><br />    [3] => Array<br />        (<br />            [title] => dd<br />            [name] => 江苏<br />        )<br /><br />    [4] => Array<br />        (<br />            [title] => dd<br />            [name] => 浙江<br />        )<br /><br />)

我想把 上面的 二位数组的格式 重构为 title名字一样的合并起来 例如

<br />array(<br />   [0]=>array(<br />       [title]=111<br />       [name]=上海,苏州<br />),<br />);<br />

——解决思路———————-

$arr = array(<br />			array('title'=>'111','name'=>'上海'),<br />			array('title'=>'111','name'=>'杭州'),<br />			array('title'=>'dd','name'=>'上海'),<br />			array('title'=>'dd','name'=>'宁波'),<br />			array('title'=>'dd','name'=>'无锡'),<br />		);<br />$title_arr = array();<br />$data = array();<br />foreach($arr as $value){<br />	if(!in_array($value['title'],$title_arr)){<br />		array_push($title_arr,$value['title']);<br />		$data[] = $value;<br />	}else{<br />		$index = array_search($value['title'],$title_arr);<br />		$data[$index]['name'] .= ','.$value['name'];<br />	}<br />}<br />var_dump($data);

——解决思路———————-

<?php<br />$arr = array(<br />            array('title'=>'111','name'=>'上海'),<br />            array('title'=>'111','name'=>'杭州'),<br />            array('title'=>'dd','name'=>'上海'),<br />            array('title'=>'dd','name'=>'宁波'),<br />            array('title'=>'dd','name'=>'无锡'),<br />        );<br />$tmp = $arr[0]['title'];<br />$newarr = array();<br />foreach($arr as $value){<br />	$key = $tmp == $value['title'] ? $tmp : $value['title'];<br />	$newarr[$key]['ti<div>……本2文来源gaodai.ma#com搞##代!^码@网3</div><code>搞代gaodaima码</code>tle'] = $value['title'];<br />	$newarr[$key]['name'] .= $value['name'].',';	<br />}<br />var_dump($newarr);

——解决思路———————-
这个看不是很难,根据数组title来做判断。
重新定义一个接收数组。
循环原数组
原来数组title的值相同,把title赋值到新数组中name值做拼接;
不相同,title和name都赋值过去。
循环完后新数组就是你要的格式
——解决思路———————-

select a.title, GROUP_CONCAT(c.name) AS name<br />  from information_agent as a <br />    left join information_agent_area as b on a.id=b.tid<br />    left join sales_area as c  on b.area_id=c.id<br />  GROUP BY a.title<br />

指令串拆行看的清楚些,注意有大写的那些地方
——解决思路———————-

<br />基本查询 <br />mysql> select * from aa;<br />+------+------+<br /><br><font color='#FF8000'>------解决思路----------------------</font><br> id<br><font color='#FF8000'>------解决思路----------------------</font><br> name <br><font color='#FF8000'>------解决思路----------------------</font><br><br />+------+------+<br /><br><font color='#FF8000'>------解决思路----------------------</font><br>1 <br><font color='#FF8000'>------解决思路----------------------</font><br> 10<br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>1 <br><font color='#FF8000'>------解决思路----------------------</font><br> 20<br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>1 <br><font color='#FF8000'>------解决思路----------------------</font><br> 20<br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>2 <br><font color='#FF8000'>------解决思路----------------------</font><br> 20<br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>3 <br><font color='#FF8000'>------解决思路----------------------</font><br> 200  <br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>3 <br><font color='#FF8000'>------解决思路----------------------</font><br> 500  <br><font color='#FF8000'>------解决思路----------------------</font><br><br />+------+------+<br />6 rows in set (0.00 sec)<br /><br />1.以id分组,把name字段的值打印在一行,逗号分隔(默认) <br />mysql> select id,group_concat(name) from aa group by id;<br />+------+--------------------+<br /><br><font color='#FF8000'>------解决思路----------------------</font><br> id<br><font color='#FF8000'>------解决思路----------------------</font><br> group_concat(name) <br><font color='#FF8000'>------解决思路----------------------</font><br><br />+------+--------------------+<br /><br><font color='#FF8000'>------解决思路----------------------</font><br>1 <br><font color='#FF8000'>------解决思路----------------------</font><br> 10,20,20<br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>2 <br><font color='#FF8000'>------解决思路----------------------</font><br> 20 <br><font color='#FF8000'>------解决思路----------------------</font><br><br /><br><font color='#FF8000'>------解决思路----------------------</font><br>3 <br><font color='#FF8000'>------解决思路----------------------</font><br> 200,500<br><font color='#FF8000'>------解决思路----------------------</font><br><br />+------+--------------------+<br />3 rows in set (0.00 sec)<br />

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数组复建
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址