数组复建

WBOY
Freigeben: 2016-06-13 12:21:13
Original
993 Leute haben es durchsucht

数组重构

本帖最后由 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 />)
Nach dem Login kopieren


我想把 上面的 二位数组的格式 重构为 title名字一样的合并起来 例如
<br />array(<br />   [0]=>array(<br />       [title]=111<br />       [name]=上海,苏州<br />),<br />);<br />
Nach dem Login kopieren

------解决思路----------------------
$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);
Nach dem Login kopieren

------解决思路----------------------
<?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]['title'] = $value['title'];<br />	$newarr[$key]['name'] .= $value['name'].',';	<br />}<br />var_dump($newarr);
Nach dem Login kopieren

------解决思路----------------------
这个看不是很难,根据数组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 />
Nach dem Login kopieren

指令串拆行看的清楚些,注意有大写的那些地方
------解决思路----------------------
<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 />
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage