使用PHP将值推送到多维数组中

时间:2013-07-28 00:52:23

标签: php cakephp

我正在使用CakePHP并检索用户信息,进行计算,然后我想将该计算添加到每个用户的数组中

查找用户后,这是数组的结构

print_r($user_info);

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 1
                    [email] => admin@gmail.com
                    [website] => www.admin.com

                )

        )

)

现在我正在尝试在循环中为此特定用户添加'num_payments'键

array_push($user_info[$i]['User'],array('num_payments' => $customer_payments[$i]['num_payments']));

这是结果数组

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 1
                    [email] => admin@gmail.com
                    [website] => www.admin.com
                    [0] => Array
                        (
                            [num_payments] => 1
                        )

                )

        )

)

我怎样才能进入这个结构?

Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 1
                    [email] => admin@gmail.com
                    [website] => www.admin.com
                    [num_payments] => 1
                )

        )

)

3 个答案:

答案 0 :(得分:3)

没有array_push

$user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments'];

答案 1 :(得分:1)

$user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments'];

答案 2 :(得分:1)

听起来您应该在查询中添加join以提取与用户数据相结合的数据。然后,您可以使用Hash::combine方法将数据合并到它所属的数组中。

但是,如果您只是在数据上运行循环,那么您应该可以添加它:

foreach ($user_info as $i -> $data) {
  $user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments'];
}

这假设$i对应于两个数组中的相同记录。

如果$i中的$customer_paymentsUser.id相对应,则需要您执行此操作:

foreach ($user_info as $i -> $data) {
  $user_info[$i]['User']['num_payments'] = $customer_payments[$user_info[$i]['User']['id']]['num_payments'];
}