0

$ departments配列を反復処理して、それが$ name変数値と等しいかどうかをテストし、リストにある場合は「チェック済み」を返すにはどうすればよいですか。部門はチェックボックスの配列です

function isChecked($name) {
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array();
foreach ($departments as $key => $value) {
    // this next line here is wrong 
    if($departments[$key][$value] == $name) { 
        return "checked";   
    };      
}
return "";

}

4

4 に答える 4

1

$valueforeach ループ内で間違っていることを参照しています。それが言うこと、配列$valueの中にあるものの値だけが含まれています。$departments

function isChecked($name) {
$departments = (isset($_POST["interests"])) ? $_POST["interests"] : array();
foreach ($departments as $key => $value) {
    if($value == $name) { 
        return "checked";   
    };  
}
return "";
}
于 2013-02-16T03:37:21.953 に答える
1

if($departments[$key][$value] == $name) の代わりに

使用する

if($value == $name)
于 2013-02-16T03:39:28.493 に答える
0

どちらかを使用したい

if ($departments[$key] == $name) { ... }

また

if ($value == $name) { ... }

$department[$key]$keyは配列内の値を提供しますが、ループ定義で設定しているため$department、その値も便利に格納されます。$value

于 2013-02-16T03:37:34.947 に答える
0

これを試して。

function isChecked($name) {
    return isset($_POST['interests'][$name]);
}

true の場合に文字列値を返す関数が必要な場合は、これを行うことができます。checked

return isset($_POST['interests'][$name]) ? 'checked' : '';
于 2013-02-16T03:39:03.203 に答える