您好,欢迎访问一九零五行业门户网

php二维数组找出相同的key,拼接value

array( array( shopid => c024, name => a, listno => 13343 ), array( shopid => c024, name => c, listno => 13343 ), array( shopid => c024, name => b, listno => 13342 ), array( shopid => c024, name => d, listno => 13342 ), array( shopid => c024, name => e, listno => 13346 ), array( shopid => c024, name => f, listno => 13346 ));

listno相同的值重新组织成一个数组,实现的效果:
array(shopid => c024, name => array(a, c), listno = 13343);

回复内容: array( array( shopid => c024, name => a, listno => 13343 ), array( shopid => c024, name => c, listno => 13343 ), array( shopid => c024, name => b, listno => 13342 ), array( shopid => c024, name => d, listno => 13342 ), array( shopid => c024, name => e, listno => 13346 ), array( shopid => c024, name => f, listno => 13346 ));

listno相同的值重新组织成一个数组,实现的效果:
array(shopid => c024, name => array(a, c), listno = 13343);

$arr = array( array( shopid => c024, name => a, listno => 13343 ), array( shopid => c024, name => c, listno => 13343 ), array( shopid => c024, name => b, listno => 13342 ), array( shopid => c024, name => d, listno => 13342 ), array( shopid => c024, name => e, listno => 13346 ), array( shopid => c024, name => f, listno => 13346 ) ); $lists = array_column($arr, 'listno'); $lists = array_flip(array_flip($lists)); $result = array(); foreach ($lists as $k => $v) { $res = array(); foreach ($arr as $key => $val) { if ($val['listno'] == $v) { if (count($res) == 0) { $res = $val; } else { if ($res['shopid'] != $val['shopid']) { if (!is_array($res['shopid'])) { $res['shopid'] = array($res['shopid'], $val['shopid']); } else { $res['shopid'][] = $val['shopid']; } } if ($res['name'] != $val['name']) { if (!is_array($res['name'])) { $res['name'] = array($res['name'], $val['name']); } else { $res['name'][] = $val['name']; } } } }// var_dump($res); } $result[] = $res; } var_dump($result);
结果如下:array (size=3)
0 =>
array (size=3) 'shopid' => string 'c024' (length=4) 'name' => array (size=2) 0 => string 'a' (length=1) 1 => string 'c' (length=1) 'listno' => int 13343
1 =>
array (size=3) 'shopid' => string 'c024' (length=4) 'name' => array (size=2) 0 => string 'b' (length=1) 1 => string 'd' (length=1) 'listno' => int 13342
2 =>
array (size=3) 'shopid' => array (size=2) 0 => string 'c024' (length=4) 1 => string 'c025' (length=4) 'name' => array (size=3) 0 => string 'e' (length=1) 1 => string 'f' (length=1) 2 => string 'g' (length=1) 'listno' => int 13346
遍历数组,遍历时把listno作为key,然后判断下如果isset同样的key就对name做合并操作,没有就直接写入,到最后array_merge一下清除掉数组的key
其它类似信息

推荐信息