What I want
I want an Array looking like this:
Array
(
[item1] => Array
(
[0] => Array
(
[paid] => 500
[nname] => Lastname
[vname] => Firstname
[mail] => [email protected]
)
[1] => Array
(
[paid] => 200
[nname] => Lastname2
[vname] => Firstname2
[mail] => [email protected]
)
)
[item2] => Array
(
[0] => Array
(
[paid] => 100
[nname] => Lastname3
[vname] => Firstname3
[mail] => [email protected]
)
)
It's an array where I have like multiple payments for one item. And I want to save all details from each payment as array into an array of the item.
What I have
$paidgift = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$nname = $row['nname'];
$vname = $row['vname'];
$paid = $row['paidprice'];
$mail = $row['mail'];
$gift = $row['title'];
if (array_key_exists($gift, $paidgift)) {
//Item already exists in $paidgift
$paymentdetails = array('paid' => $paid,
'nname' => $nname,
'vname' => $vname,
'mail' => $mail,
);
$paidgift[$gift][] = $paymentdetails;
} else {
//Item doesn't exist in array $paidgift
$giftarray = array();
$paymentdetails = array('paid' => $paid,
'nname' => $nname,
'vname' => $vname,
'mail' => $mail,
);
array_push($giftarray, $paymentdetails);
array_push($paidgift, $giftarray);
}
}
The result of my code
Now I stuck with my code snippet. The problem is, that my code doesn't paste an existing items payment into the right array. This code section: $paidgift[$gift][] = $paymentdetails;
Instead it always creates a new item array and pushes the paymentdetails array into the newly created array.
Hope this is enough information to understand my problem. Please ask if something isn't clear.
$paidgift[$gift][]this isn't going to work. You need to specify akeyor usearray_push()