Aynı Uzunlukta Olmayan Dizilerde Yer Değiştirme

Eğer değiştirme dizisi ve olay dizisi uzunluğu aynı değilse, son eleman atanır.

<?php 
class metin{
	function metin_degistir($ara,$degistir,$olay,$metin){			
		$finalmetin="";
		$list=explode($ara,$metin);
		if(is_string($degistir))
			$degistir=explode(",",$degistir);	
		if(is_string($olay))
			$olay=explode(",",$olay);
		if(is_array($olay)||is_metin($olay)){
			$i=0;	
			$degistir_yeni="";		
			while($i<count($olay)){
				if(isset($degistir[$i]))
					$degistir_yeni=$degistir[$i];
				@$list[$olay[$i]].=$degistir_yeni;
				$i++;
			}
			$i=0;
			while($i<count($list)-1){
				if($i==@$olay[$i])
					$finalmetin.=$list[$i];
				else
					$finalmetin.=$list[$i];
				$i++;
			}
		}else{
			$list[$olay].=$degistir;
			$i=0;
			while($i<count($list)-1){				
				if($i==$olay)
					$finalmetin.=$list[$i];
				else
					$finalmetin.=$list[$i];
				$i++;
			}
		}			
		return $finalmetin;
	}
}
$metindegistir=new metin;
echo $metindegistir->metin_degistir("sen",["ali","ayşe"],[0,1,2],"neredesin sen neredesin sen neredesin sen neredesin sen");
?>

Çıktısı

neredesin ali neredesin ayşe neredesin ayşe neredesin

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.