在php数组中搜索并替换关键字的值


Search and replace value for a key in an array php

我有这样的数组:

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,还有其他更好的方法吗?

别这么认为。

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

我当然假设你有PHP 5.3+

您需要循环的任何方式。由于不清楚数组的大小/数组将如何排序,因此没有太多方法可以在不遍历的情况下分配值。

跳出框框思考。通常,数组将在脚本中的某个位置使用,并且会有代码访问数组中的值。访问数组时,是否有机会将所需的user_id分配给输出?