Salve raga ho questo quesito:
ho un array tipo questo
Ho realizzato questo ma sono piantato....ove sbaglio ???
grazie in anticipo
ho un array tipo questo
PHP:
{"nome":"mario","age":"33","importo":"726,98"},
{"nome":"mario","age":"35","importo":"26,00"},
{"nome":"mario","age":"40","importo":"43,02"},
{"nome":"mario","age":"41","importo":"726,98"},
{"nome":"carlo","age":"33","importo":"526,25"},
{"nome":"carlo","age":"41","importo":"6,15"}
{"nome":"carlo","age":"48","importo":"15,35"}
]
dovrei sommare il campo importo di quelli che hanno lo stesso nome ed hanno un'eta maggiore di 40....
gradirei ottenere questo...
[
{"nome":"mario","age":"33","importo":"726,98"},
{"nome":"mario","age":"35","importo":"26,00"},
{"nome":"mario","age":"","importo":"770,00"},//qui somma 43,02+726,08
{"nome":"carlo","age":"33","importo":"526,25"},
{"nome":"carlo","age":"","importo":"21,50"}//qui somma 6,15+15,35
]
PHP:
$data = '[
{"nome":"mario","age":"33","importo":"726,98"},
{"nome":"mario","age":"35","importo":"26,00"},
{"nome":"mario","age":"40","importo":"43,02"},
{"nome":"mario","age":"41","importo":"726,98"},
{"nome":"carlo","age":"33","importo":"526,25"},
{"nome":"carlo","age":"41","importo":"6,15"},
{"nome":"carlo","age":"48","importo":"15,35"}
]';
$data = json_decode($data);
$data = array_filter($data);
$result = array();
foreach($data as $value) {
if (array_key_exists($value->nome,$result))
{
//controllo se esiste
echo "Key exists!";
if ($value->age >= 40)
{
//qui devo sommare importi al record già nell'array
echo "Sommare Importo ".$value->importo."<br>";
}
else
{
echo "Eta inferiore aggiungo record nome =".$value->nome."/ age=".$value->age."/ importo=".$value->importo."<br>";
$result[] = array(
'nome' => $value->nome,
'age' => $value->age,
'importo' => $value->importo
);
}
}
else
//se non esiste lo aggiungo
{
echo "Non esiste aggiungo record nome =".$value->nome."/ age=".$value->age."/ importo=".$value->importo."<br>";
$result[] = array(
'nome' => $value->nome,
'age' => $value->age,
'importo' => $value->importo
);
}
}
print_r($result);
grazie in anticipo
Ultima modifica di un moderatore: