1

私はこのような配列を持っています:

array(
    [0] => Array
    (
        [q_id] => 314
        [answer_type] => RI
        [answer] => 3438
        [user_id] => 
    )

[1] => Array
    (
        [q_id] => 286
        [answer_type] => NM
        [answer] => 5
        [user_id] => 
    )

[2] => Array
    (
        [q_id] => 207
        [answer_type] => SS
        [answer] => 1
        [user_id] => 1
    )
 )

user_id の値が空であるか、すべての質問で同じ user_id を持つことが期待されます。空の user_id を既存の user_id に置き換えたい。

ループ/array_walk以外にそれを行うより良い方法はありますか?

4

2 に答える 2

1

そうは思わないでください。

$arr = array_map(function ($val) use ($user_id) {
    if (empty($val['user_id'])) {
        $val['user_id'] = $user_id;
    }

    return $val;
}, $arr);

もちろん、PHP 5.3 以降を使用していると仮定しています。

于 2012-08-27T22:26:01.293 に答える
0

とにかく、ループする必要があります。配列がどのくらいの大きさになるか、または配列がどのようにソートされるかが明確ではないため、それらをウォークスルーせずに値を割り当てる方法はあまりありません。

既成概念にとらわれない考え方。通常、配列はスクリプトのどこかで使用され、配列内の値にアクセスするコードがあります。配列にアクセスしているときに、目的の user_id を出力に割り当てる機会はありますか?

于 2012-08-27T22:33:32.127 に答える