please format your code
Mar 1, 2023
6
Level 1
How to use 2 foreach without duplicating values
Hello in laravel i have 2 arrays, one array has the dates between date A and date B and the other array has sales and sale date values from database, what im trying to do is to run a foreach loop that for each between date to see if any sales exist if dont to add a value zero else to just pass it. This is the code i have done until now:
foreach ($outlays as $outlay) {
foreach ($dateRanges as $dateRange) {
$formatedDate = date("d-m-Y", strtotime($dateRange->toString()));
if ($formatedDate != $outlay->date) {
$outlaysWithZeroValues [] = (object) [
"currency" => serialize([
"ALL" => "0",
"USD" => "0",
"GBP" => "0",
"EUR" => "0",
]),
"date" => date("d-m-Y", strtotime($dateRange->toString())),
];
if($formatedDate != $outlay->date) {
$temp [] = [
"database date" => $outlay->date,
"generated date" => date("d-m-Y", strtotime($dateRange->toString())),
];
}
}else{
$outlaysWithZeroValues [] = $outlay;
break;
}
}
}
The code gives me duplicates the values this is the Json result i get:
[
[
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 389
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"USD": 100
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "19-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "20-02-2023"
}
],
[
{
"currencies": {
"ALL": 300,
"USD": 250
},
"date": "21-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "19-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "20-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "21-02-2023"
}
],
[
{
"currencies": {
"ALL": 130,
"USD": 200
},
"date": "22-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "19-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "20-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "21-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "22-02-2023"
}
],
[
{
"currencies": {
"USD": 200
},
"date": "23-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "01-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "02-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "03-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "04-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "05-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "06-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "07-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "08-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "09-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "10-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "11-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "12-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "13-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "19-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "20-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "21-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "22-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "23-02-2023"
}
],
[
{
"currencies": {
"ALL": 1000,
"EUR": 2000,
"GBP": 500
},
"date": "24-02-2023"
}
]
]
]
While i need it to show like this:
[
[
{
"currencies": {
"ALL": 389
},
"date": "14-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "15-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "16-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "17-02-2023"
}
],
[
{
"currencies": {
"USD": 100
},
"date": "18-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "19-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "20-02-2023"
}
],
[
{
"currencies": {
"ALL": 300,
"USD": 250,
"GBP": 0,
"EUR": 0
},
"date": "21-02-2023"
}
],
[
{
"currencies": {
"ALL": 130,
"USD": 200,
"GBP": 0,
"EUR": 0
},
"date": "22-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 200,
"GBP": 0,
"EUR": 0
},
"date": "23-02-2023"
}
],
[
{
"currencies": {
"ALL": 1000,
"USD": 0,
"GBP": 500,
"EUR": 2000
},
"date": "24-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "25-02-2023"
}
],
[
{
"currencies": {
"ALL": 0,
"USD": 0,
"GBP": 0,
"EUR": 0
},
"date": "26-02-2023"
}
],
[
{
"currencies": {
"ALL": 500,
"USD": 0,
"GBP": 0,
"EUR": 900
},
"date": "27-02-2023"
}
]
]
]
Level 4
i think you you should iterate over each date in the date range array, and check if there's a matching sale in the sales array: try something like this:
foreach ($dateRanges as $dateRange) {
$formatedDate = date("d-m-Y", strtotime($dateRange->toString()));
$saleExists = false;
foreach ($outlays as $outlay) {
if ($outlay->date == $formatedDate) {
$outlaysWithZeroValues[] = $outlay;
$saleExists = true;
break;
}
}
if (!$saleExists) {
$outlaysWithZeroValues [] = (object) [
"currency" => serialize([
"ALL" => "0",
"USD" => "0",
"GBP" => "0",
"EUR" => "0",
]),
"date" => $formatedDate
];
}
}
1 like
Please or to participate in this conversation.