v2.5.2
Giriş yap

Kaynakça yazımı isimler

rephp7
481 defa görüntülendi

Merhaba,
yazılar tablomda yazarların adları:

Yazı AdıYazarlar
Yazı 1Ali Beyaz, Veli Kırmızı, Ahmet Turuncu

Tablodaki isimler arasındaki virgül sonrası boşluk yazılmış olabiliyor.

Kaynakça gösterimi için:
1.Durum: Tek yazarlıysa: Beyaz, Ali
2.Durum: İki yazarlıysa: Beyaz, Ali ve Veli Kırmızı
3.Durum: Üç yazarlıysa: Beyaz, Ali, Veli Kırmızı ve Ahmet Turuncu

şeklinde almam lazım. Bu 3 durum için ayrı ayrı bu isimleri nasıl dönderebilirim?

makifgokce
954 gün önce
$authors = [
	"Ali Beyaz",
	"Veli Kırmızı",
	"Ahmet Turuncu",
	"Hasan Hüseyin Siyah"
];
foreach($authors as $key => $author){
	$x = explode(' ', $author);
	$r = '';
	if ($key == 0) {
		foreach($x as $k => $s){
			if($k == 0) {
				$r .= end($x).', '.$s;
			} else if ($k == count($x) - 1) {
				continue;
			} else {
				$r .= ', '.$s;
			}
		}
	} else {
		foreach($x as $k => $s){
			if ($k == count($x) - 1) {
				$r .= ', '.$s;
			} else if($k == 0) {
				$r .= $s;
			} else {
				$r .= ', '.$s;
			}
		}
	}
	$authors[$key] = $r;
}
$q = '';
foreach($authors as $d => $v){
	if($d == 0){
		$q .= $v;
	} else if (end($authors) != $v) {
		$q .= ' | '. $v;
	} else {
		$q .= ' ve '.$v;
	}
}
echo $q;
// Output: Beyaz, Ali | Veli, Kırmızı | Ahmet, Turuncu ve Hasan, Hüseyin, Siyah