php dizi işlemleri
beyler sorum şu benim alt alta birsürü dizim var onları içindeki bir tarihe göre listelicem ve aynı olanların sayılarını toplicam olmayanlar tek gelicek zaten
örneğin:
$array = [
[
"TOPLAM_ADET" => 8130,
"HAREKET_TARIHI" => "2021-08-09 00:00:00.000",
"S_FLOAT2" => "7.5999999999999996",
"S_FLOAT3" => "2.1669999999999998",
"dk" => "79,406",
"bant_kisi" => 25,
"total_kapasite" => "13,500",
"verim" => "588",
],
[
"TOPLAM_ADET" => 113,
"HAREKET_TARIHI" => "2021-08-07 00:00:00.000",
"S_FLOAT2" => "7.2300000000000004",
"S_FLOAT3" => "2.3300000000000001",
"dk" => "1,080",
"bant_kisi" => 12,
"total_kapasite" => "6,480",
"verim" => "17",
],
[
"TOPLAM_ADET" => 5281,
"HAREKET_TARIHI" => "2021-08-09 00:00:00.000",
"S_FLOAT2" => "7.5999999999999996",
"S_FLOAT3" => "2.1669999999999998",
"dk" => "22,367",
"bant_kisi" => 28,
"total_kapasite" => "18,250",
"verim" => "241",
]
];
böyle alt alta gelen verilerim var benim istediğim HAREKET_TARIHI aynı olanlar tek 1 tane yazsın ve aynı tarihte olanların adet float bilgileri toplansın bunu nasıp yapabilir bilen yardımcı olursa sevinirim?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
@makifgokce usta saolasın yazdığın kod çalışıyor ama anlayamadığım bişey daha var mesela tarihi aynı olanların TOPLAM_ADET ini nasıl toplicam
uasort($array, function($x, $y){
if ($x["HAREKET_TARIHI"] == $y["HAREKET_TARIHI"]) {
return 0;
}
return strtotime($x["HAREKET_TARIHI"]) - strtotime($y["HAREKET_TARIHI"]);
});
tarihleri aynı olanların TOPLAM_ADET kısımları toplanması için napmam gerek ??
$array = [
[
"TOPLAM_ADET" => 8130,
"HAREKET_TARIHI" => "2021-08-09 00:00:00.000",
"S_FLOAT2" => "7.5999999999999996",
"S_FLOAT3" => "2.1669999999999998",
"dk" => "79,406",
"bant_kisi" => 25,
"total_kapasite" => "13,500",
"verim" => "588",
],
[
"TOPLAM_ADET" => 113,
"HAREKET_TARIHI" => "2021-08-07 00:00:00.000",
"S_FLOAT2" => "7.2300000000000004",
"S_FLOAT3" => "2.3300000000000001",
"dk" => "1,080",
"bant_kisi" => 12,
"total_kapasite" => "6,480",
"verim" => "17",
]
];
uasort($array, function($x, $y){
if ($x["HAREKET_TARIHI"] == $y["HAREKET_TARIHI"]) {
return 0;
}
return strtotime($x["HAREKET_TARIHI"]) - strtotime($y["HAREKET_TARIHI"]);
});
print_r($array);