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_ids。

除了循环 / 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 回答