0

たとえば、私は配列を持っています:

array(
    'a' => 'value',
    'b' => 'value',
    'c',
    'd' => 'value',
    'e' => array(
        'f' => 'value',
        'g',
        array(
            'h' => 'value',
            'i'
        )
    ),
    'k',
    'l' => 'value'
);

次のように存在しない場合は、再帰的にそれをたどり、キーを NULL に設定する必要があります。

array(
    'a' => 'value',
    'b' => 'value',
    NULL => 'c',
    'd' => 'value',
    'e' => array(
        'f' => 'value',
        NULL => 'g',
        array(
            'h' => 'value',
            NULL => 'i'
        )
    ),
    NULL => 'k',
    'l' => 'value'
);

UPDATEJSON配列をエンコードしてブラウザにプッシュ する必要があるため、これが必要です。問題は、json_encodeキーが存在しない場合はキーを 0 に設定することですが、存在する場合はNULLブラウザでも同じままです。したがって、JS でこの配列を使用すると、実際の 0 がどこにあり、キーがなかったために 0 が作成された場所を検出できます。

4

2 に答える 2

0

を使用しarray_walk_recursiveます。

array_walk_recursive($array, function (&$value, &$key) {
    $value = NULL; /* for example as you cannot use multiple NULL-keys nor set the key to NULL... */
});

Ps: NULL キーを使用できない理由については、@OlafDietsche の投稿を参照してください。

于 2013-04-18T21:14:33.437 に答える