Hallo
> $gebiet=array(0=>"1",
> 1=>"7",
> 2=>11);
// [...]
> if ( array_search ( $fachgebiet->id, $gebiet ) )
Nun wird aber der erste Wert des Arrays, also $gebiet[0] nicht gefunden,
Grundsätzlich ist natürlich, wie Du bereits gelernt hast in_array() die
richtige Wahl.
Du solltest es Dir aber abgewöhnen, solche Konstrukte wie
> if ( array_search ( $fachgebiet->id, $gebiet ) )
zu verwenden. Wie ichen bereits ausgeführt hat, wird der Rückgabewert 0 als
false ausgewertet. Daher teste in vergleichbaren Fällen auf Identität, siehe
http://www.php.net/manual/de/language.operators.comparison.php
if ( false !== array_search ( $fachgebiet->id, $gebiet ) )
Freundliche Grüße
Vinzenz