1

これは、単純なforステートメントを使用した通常の配列で簡単に実行できます。例えば:

    $b= array('A','B','C');
    $s=sizeof($b);
    for ($i=0; $i <$s ; $i++) $b[$i]='your_face';
    print_r($b);

しかし、連想配列を使用する場合、それを行う簡単な方法はないようです。もちろん、foreachループを使用することもできますが、実際には、実際の配列エンティティへのポインターを返すのではなく、$value変数を複製しています。EG、これは機能しません:

    $b= array('A'=>'A','B'=>'B','C'=>'C');
    foreach ($b as $v) $v='your_face';
    print_r($b);

もちろん、私たちはこのような愚かな考えを持つことができます:

    $b= array('A'=>'A','B'=>'B','C'=>'C');
    foreach ($b as $k => $v) $b[$k]='your_face';
    print_r($b);

ただし、これは、使用されない$ v変数を冗長に再作成するため、厄介な解決策になります。

それで、assocをループするためのより良い方法は何ですか?

4

2 に答える 2

3

あなたは試すことができます:

foreach(array_keys($b) as $k) {
    $b[$k] = 'your_face';
}

print_r($b);

説明については、次のリンクを参照してください:http array_keys: //php.net/manual/en/function.array-keys.php

于 2012-06-27T14:39:08.567 に答える
2

それがあなたが望むものであるかどうかはわかりませんが、ここに行きます:

foreach(array_keys($b) as $k) $b[$k] = 'your_face';
于 2012-06-27T14:40:18.190 に答える