Php Problemlerim
-
Herkese merhaba,
Şu an PHP öğrenme aşamasındayım sürekli pratikler yapıyorum ancak araştırıp bulamadığım, düşünüp çözüme ulaştıramadığım bir nokta var yardımcı olursanız çok sevinirim. Aşağıdaki gibi bir örnek çalışma hazırladım. Yapmak istediğim işlem bu iç içe olan dizideki 3 kişinin maaşlarının toplamını ve averajını alabilmek.
<?php
$info = [["İsim" => "Yağız","Soyisim"=> "Tektaş","Yaş" => 27,"Maaş" => "5.000 TL"],["İsim" => "Alper","Soyisim"=> "Yunuslar","Yaş" => 28,"Maaş" => "10.500 TL"],["İsim" => "Atakan","Soyisim"=> "Macit","Yaş" => 29,"Maaş" => "7.000 TL"]];
foreach ($info as $inf) {echo '<br>';foreach($inf as $key => $val){echo $key . " : " . $val . "<br>";}}
?> -
$totalSalary = 0;
foreach ($info as $people) {
$totalSalary += $people["Maaş"];
}
echo 'Toplam Maaş: ' . $totalSalary;
Ayrıca değişken isimlerinde olduğu gibi array keylerinde de Türkçe karakter kullanmazsan daha iyi olur.
Ve daha doğru foreach kullanımı: foreach($peoples as $people) { .... }
ya da
$totalSalary = array_sum(array_column($info, 'Maaş'));
echo 'Toplam Maaş: ' . $totalSalary;
Edit: Maaş değerlerinde " TL" varmış sonradan farkettim. Sayı olmalı o değerler yoksa çalışmaz üstteki kod.
Maaşı yazdıracağın yerde $maas . " TL" şeklinde gösterirsin.
-
Yardım için çok teşekkür ederim, eline sağlık hocam :)
Edit : Son olara dizilerde bulunan yaşların nasıl ortalamasını alabilirim acaba ?
yagiztektas tarafından 14/Nis/20 15:31 tarihinde düzenlenmiştir -
Ortalamayı şöyle alırsın.
$yas_toplam = 0;
foreach($info as $val){
$yas_toplam += $val["Yaş"];
}
$yas_ortalama = ($yas_toplam/count($val));
hocam ufak bir önerim olacak, kullandığın tüm değişken isimlerini daha sonra baktığında anlayacağın şekilde tek bir düzende yazmanı öneririm. Hazır öğreniyorken alışkanlık edin, kodun düzenli olsun kaliteli görünsün.
-
Hocam emeğinize sağlık çok teşekkür ederim, öneriyi dikkate alacağım.
-
High order fonksiyonlari bu tarz isler icin tasarlanmis pratik ve performansli fonksiyonlardir.
<?php $info = [ [ "isim" => "Yağız", "soyisim"=> "Tektaş", "yas" => 27, "maas" => "5000" ], [ "isim" => "Alper", "soyisim"=> "Yunuslar", "yas" => 28, "maas" => "10500" ], [ "isim" => "Atakan", "soyisim"=> "Macit", "yas" => 29, "maas" => "7000" ] ]; echo array_sum(array_map(function($item) { return $item['maas']; }, $info))/count($info);
-
Hocam çok teşekkür ederim bunları da iyice kavrayıp kullanmam gerekiyor. Henüz başlardayım ve bazen karman çorman oluyor her şey gözümde :D
-
döngüleri anlamamışsın sen,
siktiret maaşı falan. üçgen yaptın mı ? üçgen yap. üçgen yapmadan programlama öğrenilmez !