【问题标题】:add key value pair to existing array将键值对添加到现有数组
【发布时间】:2014-01-10 00:29:49
【问题描述】:

我将变量 $users 设置为类似于下面的数组

Array(
    [4] => Array(
        [userid] => 4
        [name] => Mike
        [gender] => M
    )

    [5] => Array(
        [userid] => 5
        [name] => Sally
        [gender] => F
    )

    [6] => Array(
        [userid] => 6
        [name] => Steve
        [gender] => M
    )
)

然后我有代码循环通过这个数组来调用一个函数来计算年龄。

foreach($users as $user){
    $age = getUserAge($user->id);
}

如何获取变量$age 并将其添加到$users 以生成跟随数组?

Array(
    [4] => Array(
        [userid] => 4
        [name] => Mike
        [gender] => M
        [age] => 35
    )

    [5] => Array(
        [userid] => 5
        [name] => Sally
        [gender] => F
        [age] => 24
    )

    [6] => Array(
        [userid] => 6
        [name] => Steve
        [gender] => M
        [age] => 32
    )
)

【问题讨论】:

    标签: php arrays loops


    【解决方案1】:
    foreach($users as &$user){
        $age = getUserAge($user['userid']);
        $user['age'] = $age;
    }
    

    精简版:

    foreach($users as &$user){
        $user['age'] = getUserAge($user['userid']);
    }
    

    注意数组变量名前的和号,表示变量是通过引用传递的,因此可以修改。请参阅docs 了解更多信息。

    【讨论】:

    • 使用$user["userid"],因为它是一个数组而不是一个对象
    【解决方案2】:
    foreach($users as $index => $user) {
        $users[$index]['age'] = getUserAge($user['userid']);
    }
    

    【讨论】:

    • 这种方法对我有用,而上面的方法没有,因为 &$ 会影响其他方面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2016-07-18
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多