我正在使用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
)
)
)
答案 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_payments
与User.id
相对应,则需要您执行此操作:
foreach ($user_info as $i -> $data) {
$user_info[$i]['User']['num_payments'] = $customer_payments[$user_info[$i]['User']['id']]['num_payments'];
}