55

連想配列がある場合:

Array
(
    [uid] => Marvelous
    [status] => 1
    [set_later] => Array
        (
            [0] => 1
            [1] => 0
        )

    [op] => Submit
    [submit] => Submit
)

そして、2 番目の項目にアクセスしたいのですが、どのようにしますか? $arr[1]動作していないようです:

foreach ($form_state['values']['set_later'] as $fieldKey => $setLater) {
    if (! $setLater) {
        $valueForAll = $form_state['values'][$fieldKey];
        $_SESSION[SET_NOW_KEY][array_search($valueForAll, $form_state['values'])] = $valueForAll; // this isn't getting the value properly
    }
}

このコードは以下を生成するはずです:

$_SESSION[SET_NOW_KEY]['status'] = 1

ただし、空白のエントリが生成されるだけです。

4

7 に答える 7

0

最初の例で提供した配列が $form_state に対応する場合、

$form_state['values']['set_later'][1]

動作します。

さもないと

$i = 0;
foreach ($form_state['values']['set_later'] as $fieldKey => $setLater) {
    if ($i == 1) {
        $valueForAll = $form_state['values'][$fieldKey];
        $_SESSION[SET_NOW_KEY][$fieldKey] = $setLater;
        continue;
    }
    $i++;
}
于 2010-01-04T10:50:43.360 に答える