PHP 数组中如果有一个元素相同,怎么拼接其他元素
程序员文章站
2022-05-16 23:21:58
...
PHP 数组中如果有一个元素相同,如何拼接其他元素
比如原数组是这样的
array(3) {
[0] => array(6) {
["pla_id"] => string(3) "298"
["user_id"] => string(1) "1"
["due_in"] => string(15) "8.33"
}
[1] => array(6) {
["pla_id"] => string(3) "976"
["user_id"] => string(1) "1"
["due_in"] => string(15) "338.90"
}
[2] => array(6) {
["pla_id"] => string(3) "56"
["user_id"] => string(1) "2"
["due_in"] => string(15) "25.6"
}}
因为数组中的user_id=1 是一样的
要得到最后这样数组,要怎么写(就是把user_id相同的其他元素拼接在一起)?
array(3) {
[0] => array(6) {
["pla_id"] => string(3) "298,976"
["user_id"] => string(1) "1"
["due_in"] => string(15) "8.33,338.90"
}
[1] => array(6) {
["pla_id"] => string(3) "56"
["user_id"] => string(1) "2"
["due_in"] => string(15) "25.6"
}}
------解决思路----------------------
比如原数组是这样的
array(3) {
[0] => array(6) {
["pla_id"] => string(3) "298"
["user_id"] => string(1) "1"
["due_in"] => string(15) "8.33"
}
[1] => array(6) {
["pla_id"] => string(3) "976"
["user_id"] => string(1) "1"
["due_in"] => string(15) "338.90"
}
[2] => array(6) {
["pla_id"] => string(3) "56"
["user_id"] => string(1) "2"
["due_in"] => string(15) "25.6"
}}
因为数组中的user_id=1 是一样的
要得到最后这样数组,要怎么写(就是把user_id相同的其他元素拼接在一起)?
array(3) {
[0] => array(6) {
["pla_id"] => string(3) "298,976"
["user_id"] => string(1) "1"
["due_in"] => string(15) "8.33,338.90"
}
[1] => array(6) {
["pla_id"] => string(3) "56"
["user_id"] => string(1) "2"
["due_in"] => string(15) "25.6"
}}
------解决思路----------------------
$a = array(
array(
"pla_id" => "298",
"user_id" => "1",
"due_in" => "8.33",
),
array(
"pla_id" => "976",
"user_id" => "1",
"due_in" => "338.90",
),
array(
"pla_id" => "56",
"user_id" => "2",
"due_in" => "25.6",
)
);
$b = array();
foreach($a as $v) {
if(! isset($b[$v['user_id']])) $b[$v['user_id']] = $v;
else $b[$v['user_id']]["due_in"] .= ',' . $v["due_in"];
}
var_dump(array_values($b));
array(2) {
[0]=> array(3) {
["pla_id"]=> string(3) "298"
["user_id"]=> string(1) "1"
["due_in"]=> string(11) "8.33,338.90"
}
[1]=> array(3) {
["pla_id"]=> string(2) "56"
["user_id"]=> string(1) "2"
["due_in"]=> string(4) "25.6"
}
}
相关文章
相关视频
上一篇: 明朝的商屯现象为何会产生?当时的社会背景是怎样的?
下一篇: 取不到当前正确日期问题