2013-07-28 39 views
1

我使用CakePHP和检索用户信息的多维数组,进行计算,然后我想的是计算加入到每个用户推值与PHP

阵列查找用户后,这是数组

print_r($user_info); 

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

       ) 

     ) 

) 

现在,我想在一个循环

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

这里补充一个“num_payments”键这个特定用户的该结构的结果数组

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

       ) 

     ) 

) 

我怎样才能把它变成这个结构?

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

     ) 

) 

回答

3

没有array_push

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

所以才遍历值? – user1443519

+0

是 - 对于每个用户 - 只需将num_payments'键添加到数组 –

+0

哇,这很明显。有时间离开键盘。谢谢! – user1443519

1
$user_info[$i]['User']['num_payments'] = $customer_payments[$i]['num_payments']; 
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']; 
}