2016-11-07 2 views
0

2つの配列を比較しようとしていて、それらの間に共通の値がある場合はチェックボックスをチェックします。2つの配列を比較すると、PHPのチェックボックスが正しく動作しない

あなたはスクリーンショットから見ることができるように

$array_1[]="value1"; 
$array_1[]="value2"; 
$array_1[]="value3"; 
$array_1[]="value4"; 
$array_1[]="value5"; 
$array_1[]="value6"; 
$array_1[]="value7"; 
$array_1[]="value8"; 

$array_2[]="value1"; 
$array_2[]="value3"; 
$array_2[]="value4"; 


for($i=0;$i<count($array_1);$i++){ 
    $checked = isset($array_2[$i])? 'checked' : ''; 
    echo '<input type="checkbox" ' . $checked .' name="zzz[] "value="'.$array_1[$i].'"> '.$array_1[$i].'<br>'; 
} 

enter image description here

コーディング、正しい結果がVALUE1、値3とvalue4と右側にする必要があります。しかし、私のPHP出力は、スクリーンショットの左にあります

何が間違っているのですか?

答えて

1

あなたがキーに値に取り組んで、とされていないので、あなたがin_arrayチェック代わり

for($i=0;$i<count($array_1);$i++){ 
    $checked = in_array($array_1[$i], $array_2) ? 'checked' : ''; 
    echo '<input type="checkbox" ' . $checked .' name="zzz[] "value="'.$array_1[$i].'"> '.$array_1[$i].'<br>'; 
} 

を使用する必要があり、あなたは天底ラティフと、同じようにキーを設定することができます提案する

1

value2配列の初期化が間違っています。それは次のようになります。

$array_2[1]="value1"; 
$array_2[3]="value3"; 
$array_2[4]="value4"; 
関連する問題