0

アプリケーションから「日付」と「時間」を取得し、日付をキーとして、時間を多次元値として入れる別の関数セットがあります。

例として:

$alldatetimes = array(
    'date1' => array('13:00','14:30','14:30','14:30','15:00'),
    'date2' => array('09:00','10:00','10:30','10:30','12:00')
    );

foreach ($alldatetimes as $date => $times) {
echo '<h1>This Exports:</h1>';  
echo '<h2>'.$date.'</h2><br>';
    foreach ($times as $time) {

        echo $time.'<br>';
    }
}

This exports:
date1
13:00
14:30
14:30
14:30
15:00

date2
09:00
10:00
10:30
10:30
12:00

時間が配列に入れられるかどうかを制御しようとしているので、配列にはそれぞれ1つの値しかありません(その日付に14:30の3つのインスタンスは必要ありません)。

ここの他の投稿に基づいて、値がそこにあるかどうかを識別するために次のようなものを構築しようとしましたが、すべてを結び付ける方法がわかりません:

function searchForId($id, $array) {
    foreach ($array as $date => $times) {
        foreach ($times as $time) { 
            if ($time === $id) {
                return $time;
            }
        }
    }
    return null;
}

何か案は?

更新: 配列が最初に作成される方法は次のとおりです。これはおそらくより効率的です。

while ($schedule_q -> have_posts() ) : $schedule_q->the_post();
    $alldatetimes [get_the_date()][] = get_the_time();  
endwhile;
4

3 に答える 3