您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页PHP二维数组去重算法

PHP二维数组去重算法

来源:百家汽车网
PHP⼆维数组去重算法

需求

现在有下⾯⼀组⼆维数组:

array(8) { [0]=> array(2) { [\"name\"]=>

string(4) \"name\" [\"value\"]=> string(6) \"青叶\" }

[1]=> array(2) { [\"name\"]=>

string(5) \"phone\" [\"value\"]=>

string(11) \"13812341234\" }

[2]=> array(2) { [\"name\"]=>

string(12) \"fileds_507[]\" [\"value\"]=>

string(12) \"我是青叶\" }

[3]=> array(2) { [\"name\"]=>

string(12) \"fileds_508[]\" [\"value\"]=> string(6) \"合肥\" }

[4]=> array(2) { [\"name\"]=>

string(12) \"fileds_509[]\" [\"value\"]=> string(3) \"男\" }

[5]=> array(2) { [\"name\"]=>

string(12) \"fileds_510[]\" [\"value\"]=> string(6) \"⾜球\" }

[6]=> array(2) { [\"name\"]=>

string(12) \"fileds_510[]\" [\"value\"]=> string(6) \"棒球\" }

[7]=> array(2) { [\"name\"]=>

string(12) \"fileds_511[]\" [\"value\"]=>

string(16) \"2016-12-15T11:15\" }}

需要将处于第⼆维键名为name,其值相同的数组的value合并,形成⼀个新的数组。

⽐如上⾯代码中的name为fileds_510的两个⼆维数组,就应该合并为⼀个值为⾜球,棒球的数组。思路

提到数组,再PHP中我们⾸先想到了循环,那么这⾥显然⽐较适合使⽤for循环处理,与冒泡排序相似,⼀个个⽐较,最好处理。

代码代码如下:

$public_info = 数组;

for ($i=0;$ifor ($j=$i+1;$jif ($public_info[$j]['name'] == $public_info[$i]['name']) { $public_info[$i]['value'] .= ',' . $public_info[$j]['value']; unset($public_info[$j]); } }}

执⾏结果:

array(7) { [0]=> array(2) { [\"name\"]=>

string(4) \"name\" [\"value\"]=> string(6) \"青叶\" }

[1]=> array(2) { [\"name\"]=>

string(5) \"phone\" [\"value\"]=>

string(11) \"13812341234\" }

[2]=> array(2) { [\"name\"]=>

string(12) \"fileds_507[]\" [\"value\"]=>

string(12) \"我是青叶\" }

[3]=> array(2) { [\"name\"]=>

string(12) \"fileds_508[]\" [\"value\"]=> string(6) \"合肥\" }

[4]=> array(2) { [\"name\"]=>

string(12) \"fileds_509[]\" [\"value\"]=> string(3) \"男\" }

[5]=> array(2) { [\"name\"]=>

string(12) \"fileds_510[]\" [\"value\"]=>

string(13) \"⾜球,棒球\" }

[7]=> array(2) { [\"name\"]=>

string(12) \"fileds_511[]\" [\"value\"]=>

string(16) \"2016-12-15T11:15\" }}

总结

需求已搞定,只要遇到数组,我们第⼀个想到的除了现成的PHP⽅法之外,就是循环,不管是foreach还是for,上⾯例⼦是我项⽬处理的⼀个⾃定义表单编辑的⼩段过程,希望对⼤家思路有帮助。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务