Hey Leute - ihr sitzt da einem Irrtum auf. $daten ist kein wirkliches Array, sondern ein als Array realisiertes Objekt. Deswegen sind Suchfunktionen wie in_array oder array_filter hier nicht richtig.
Falls Du prüfen willst, ob $daten den Schlüssel 'zeit' überhaupt enthält, machst Du das mit array_key_exists('zeit', $daten). Wenn Du wissen willst, ob $daten['zeit'] einen bestimmten Wert enthält, dann vergleiche einfach. Wenn Du beides wissen willst, nagut, dann mach beides 😉
Ob Du die Zeit mit == oder === vergleichst (Werte-Gleichheit oder Werte-Identität) hängt von deinen Daten ab. Wenn Du die internen Typangleichungen (siehe hier und hier) brauchst, die PHP bei == durchführt, dann nimm ==, sonst nimm ===.
if ($daten['zeit'] == $time) {
$html .= '<tr>
<td style="text-align: center;">' . $time . '</td>
<td>' . $daten['person'] . '</td>
<td>' . $daten['bereich'] . '</td>
</tr>';
}
Statt Stringverkettung kannst Du auch die HEREDOC Syntax verwenden, du musst nur die Array-Zugriffe als complex syntax (in geschweifte Klammern eingeschlossen) notieren. Vorteil von HereDoc: Du kannst Apostrophe und Anführungszeichen gleichermaßen verwenden, und du musst nicht aufpassen, dass Du alle Stringfragmente korrekt in ' oder " einschließt. Die Zeilenumbrüche hinter <<<XXX und vor XXX; werden nicht in den String übernommen.
if ($daten['zeit'] == $time) {
$html .= <<<XXX
<tr>
<td style="text-align: center;">$time</td>
<td>{$daten['person']}</td>
<td>{$daten['bereich']}</td>
</tr>
XXX;
}
Rolf