Probleme mit checked () für ein Array von mehreren Checkboxen

Ich kann das checked () nicht zurückgeben, was ich erwarte.

Daten:

Options: = array ( 'baseball' => 'Baseball', 'golf' => 'Golf', 'hockey' => 'Hockey', ) Values: = array ( 'baseball' => 'Baseball', 'golf' => '', 'hockey' => '', ) 

Ich verwende diesen Code, um zu versuchen, “checked =” checked “‘zurückzugeben.

 foreach ( $options as $key => $title ) { rpq_plugin_debug_var( $key, 'Key: ' ); rpq_plugin_debug_var( $title, 'Title: ' ); $checked = checked((in_array($key, $values)), true, false); 

Ich würde erwarten, dass die Baseball-Option “checked =” checked “” zurückgibt, aber zurückkehrt “.

Ich habe das auch versucht, was mir mehr Sinn macht, ohne Erfolg.

 $checked = checked((in_array($title, $values)), true, false); 

Wo ist mein Fehler?

Danke vielmals.

EDIT: Siehe Kommentare unter diesem Beitrag zur Antwort.

  1. Machen Sie $ Werte Array nicht assoziativ.

      Values: = array ( 'baseball', 'golf' ) 
  2. Verwenden Sie diese Zeile, um Häkchen zu identifizieren

     $checked = checked((in_array($key, $values)), true, false); 

Solutions Collecting From Web of "Probleme mit checked () für ein Array von mehreren Checkboxen"

Warum leere Antwort nehmen

 foreach ( $options as $key => $title ) { rpq_plugin_debug_var( $key, 'Key: ' ); rpq_plugin_debug_var( $title, 'Title: ' ); $checked = checked((in_array($title, $values)), true, false); 

Nach diesem Schleifenende erhält man $ leer, weil es jeden Schleifenschritt ersetzt.

Spur:

 1: $checked = 'checked="checked"' 2: $checked = ''; 3: $checked = ''; 

After loop $ checked = ”;

Also müssen Array für Antworten für Multiply-Array zurückgeben wie: $ checked [$ key] = checked ((in_array ($ title, $ values)), true, false);

Also hast du Antwort:

 $checked = array ( 'baseball' => 'checked="checked"', 'golf' => '', 'hockey' => '', ) 

Und dann, wo es gebraucht wird.