PHP 配列内の 1 つの要素が同じ場合、他の要素を結合する方法
たとえば、元の配列は次のようになります。
array(3) {
[0] =>
["pla_id "] => 文字列(3) "298"
["user_id"] => 文字列(1) "1"
["due_in"] => ) "8.33"
}
[1] => 配列(6) {
["pla_id"] => 文字列(3) "976"
["user_id"] => ; 文字列(1) " 1"
["due_in"] => 文字列(15) "338.90"
}
[2] => "] => 文字列(3) "56"
["user_id"] =>文字列(1) "2"
["due_in"] =>文字列(15) "25.6"
}}
配列内の user_id=1 は同じであるため
このように最終的な配列を記述するにはどうすればよいですか (つまり、同じ user_id を持つ他の要素を結合する)。
配列(3) {
[0] => 配列(6) {
["pla_id"] => 文字列(3) "298,976"
["user_id"] => ; 文字列(1) "1"
["due_in"] => 文字列(15) "8.33,338.90"
}
[1] => 配列(6) {
[ "pla_id"] => 文字列(3) "56"
["user_id"] => 文字列(1) "2"
["due_in"] => 文字列(15) "25.6"
}}
-----ソリューションのアイデア----------------------
$a = array(<br /> array(<br /> "pla_id" => "298",<br /> "user_id" => "1",<br /> "due_in" => "8.33",<br /> ),<br /> array(<br /> "pla_id" => "976",<br /> "user_id" => "1",<br /> "due_in" => "338.90",<br /> ),<br /> array(<br /> "pla_id" => "56",<br /> "user_id" => "2",<br /> "due_in" => "25.6",<br /> )<br />);<br />$b = array();<br />foreach($a as $v) {<br /> if(! isset($b[$v['user_id']])) $b[$v['user_id']] = $v;<br /> else $b[$v['user_id']]["due_in"] .= ',' . $v["due_in"];<br />}<br />var_dump(array_values($b));
array(2) {<br /> [0]=> array(3) {<br /> ["pla_id"]=> string(3) "298"<br /> ["user_id"]=> string(1) "1"<br /> ["due_in"]=> string(11) "8.33,338.90"<br /> }<br /> [1]=> array(3) {<br /> ["pla_id"]=> string(2) "56"<br /> ["user_id"]=> string(1) "2"<br /> ["due_in"]=> string(4) "25.6"<br /> }<br />}<br /><br />