Kişileri koşullu olarak yanyana sıralama
Merhaba,
projeler sayfasında bir projeye birden fazla kişi attığımızı düşünün
projeler tablosunda kisi1,kisi2,kisi3,kisi4 sütunları var fakat her projede 1 den 4 e kadar sayıda insan tanımlı.
A projesinde 3 kişi var
B projesinde 1 kişi var.
Proje Adının yanına kişi adlarını virgül ile ayırıp çekmek istediğimde sayfada
A projesi : Ahmet A., Ali B. , Zeki C. ,
B projesi : Akif D.,,,
şeklinde görünüyor.
<div>
<?= $proje[$i]["p_adi"]; ?>
<?= $proje[$i]["kisi1"]; ?>, <?= $proje[$i]["kisi2"]; ?>,<?= $proje[$i]["kisi3"]; ?>,<?= $proje[$i]["kisi4"]; ?>
</div>
bunu nasıl düzeltebilirim? kişi haneleri boş ise gereksiz yere virgül göstermesin dolu ise virgül atıp birleştirsin. Fakat 4. kişiden sonra da virgül atmasın.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
bana pek mantıklı gelmedi bu şekilde değişkende tutmak yerine bir array ile basitçe dönülebilirdi. Ama bu yapıda şöyle bir şey kullanılabilir;
<?php
function getUsers($project) {
$users = [];
for ( $i = 1; $i <= 4; $i++ ){
if (isset($project['kisi' . $i]) && !empty($project['kisi' . $i])) {
$users[] = $project['kisi' . $i];
}
}
return implode(', ', $users);
}
?>
<div>
<?= $proje[$i]["p_adi"]; ?>
<?=getUsers($proje[$i])?>
</div>
<?= !empty($proje[$i]["kisi1"]) ? $proje[$i]["kisi1"].',' : null; ?> <?= !empty($proje[$i]["kisi2"]) ? $proje[$i]["kisi2"].',' : null; ?> <?= !empty($proje[$i]["kisi3"]) ? $proje[$i]["kisi3"].',' : null; ?> <?= !empty($proje[$i]["kisi4"]) ? $proje[$i]["kisi4"].',' : null; ?>