は私が日時データの配列を含む入力配列を持っています。今、私は、共通の時間は一つの要素として表示され、時間が1日以上同じであるならば、それが必要だグループにしたい複数の配列要素を共通のデータに結合するにはどうすればよいですか?
$temp = Array
(
[0] => Array
(
[day] => Tuesday
[time] => 07:44 pm - 08:44 pm
)
[1] => Array
(
[day] => Tuesday
[time] => 04:00 am - 04:25 am
)
[2] => Array
(
[day] => Sunday
[time] => 04:00 am - 04:25 am
)
[3] => Array
(
[day] => Sunday
[time] => 04:00 am - 04:25 am
)
[4] => Array
(
[day] => Friday
[time] => 04:00 am - 04:25 am
)
[5] => Array
(
[day] => Friday
[time] => 04:00 am - 04:25 am
)
)
1つのエントリを表示します。これをあまりにも複雑にすることなく、望みの結果を達成する最良の方法は何ですか?
Array
(
[0] => Array
(
[day] => Tuesday
[time] => 04:00 am - 04:25 am & 07:44 pm - 08:44 pm
)
[1] => Array
(
[day] => Friday & Sunday
[time] => 04:00 am - 04:25 am
)
)
ここでは、私がやっていることだ。
$final = [];
foreach ($temp as $val) {
$final[strtolower($val['day'])][] = $val['time'];
}
foreach ($final as $k => $v) {
sort($v);
$v = array_unique($v);
$last = array_pop($v);
$final[$k] = [
'day' => $k,
'time' => count($v) ? implode(", ", $v) . " & " . $last : $last,
];
}
@ aman-maurya要素をマージするロジックはありませんか? 1つの状況では、それは1日に、別の時に併合されます。 – Neodan
日が同じで時間も同じ場合はどうすればいいですか?この条件を気にしないでしょうか@AmanMaurya – Confused
@neodan私は重複した時間を取り除き、一つの要素として結合します.. –