1

我正在使用 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
                )

        )

)
4

3 回答 3

3

没有array_push

$user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments'];
于 2013-07-28T00:57:53.390 回答
1

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

但是,如果您只是在数据上运行一个循环,您应该能够像这样添加它:

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

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

如果$iin$customer_payments对应于User.id,那么它将要求您这样做:

foreach ($user_info as $i -> $data) {
  $user_info[$i]['User']['num_payments'] = $customer_payments[$user_info[$i]['User']['id']]['num_payments'];
}
于 2013-07-28T01:01:25.517 回答
1
$user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments'];
于 2013-07-28T00:58:00.620 回答