Aşağıdakileri senin mesajının altına yazıyorum ama sürekli şekilde sorulduğu için böyle yazıyorum:
Döngü, (for, while, foreach, do while..) belirli bir şart var olduğu sürece içerisinde bulundurduğu işlemi gerçekleştiren birimdir. Benim mesleğim programcılık değil ama öyle sanıyorum ki bir programlama diline başlandığında ilk öğretilen şeylerden biridir. Ilk egzersizler, birden ona kadar sayıların ekrana basılması, 1'den 100'e kadar sayıların toplanması vb'dir. Eğer böyle şeyleri yapmadıysan bence bir an önce yap. O zaman her değişik sorun karşına çıktığında elindekileri nasıl kullanacağını daha iyi bilirsin.
Örnek:
--
$i = 27;
while ($i <= 100) {
echo $i;
}
--
Ne yapacak? Sonsuza kadar ekrana 27 basacak, çünkü i 100'den küçük eşit olduğu sürece yap diyor. i üzerinde değişiklik yapmadığımız için sonsuza kadar döngü içinde kalacak.
--
$i = 1;
while ($i<=10) {
echo $i;
$i++;
}
--
Birden ona kadar ekrana basacak ve döngüden çıkacak, çünkü her adımda i'yi bir arttırdık (i++). 10.u adımda i'nin değeri 11 olacak ve koşulu sağlamadığı için döngüden çıkacak.
Bunun muadili;
--
for ($i=1; $i<=10; $i++) {
echo $i;
}
--
Bizim kodumuz buydu;
--
$dosya = file_get_contents("metin.txt");
$satirlar = explode("\n",$dosya);
foreach ($satirlar as $satir) {
$satir = "basina yaz".$satir."sonuna yaz";
echo $satir."<br>";
flush();
}
--
echo $satir dediğimiz yere numara koyacağız. Birinci adım 1 ile başlayacağı için ilk yapacağımız şey, döngü öncesi i'ye 1 atamak ve döngünün her adımında i'yi arttırmak. Otomatik olarak atayacaktır.
PHP:
$dosya = file_get_contents("metin.txt");
$satirlar = explode("\n",$dosya);
$i = 1; // <-
foreach ($satirlar as $satir) {
$satir = "basina yaz".$satir."sonuna yaz";
echo $i.".".$satir."<br>";
flush();
$i++; // <-
}
Ben bunu for'la yapacağım derseniz. For'da bir limit koymamız gerektiği için sınırlayıcı, elimizdeki eleman sayısını bilmemiz lazım. Foreach'de dizi içindeki her bir eleman için dedik, eleman bitince otomatik durdurur o. Şimdi limit lazım bize. Onu da dizinin toplam eleman sayısı olarak düşüneceğiz. Dizi 0'dan başladığı, biz 1 den başlatacağımız için limitimizi 1 düşürerek bulacağız.
PHP:
$dosya = file_get_contents("metin.txt");
$satirlar = explode("\n",$dosya);
$limit = count($satirlar) - 1; // <-
for ($i=1; $i<=$limit; $i++) {
$satir = "basina yaz".$satirlar[$i]."sonuna yaz";
echo $i.".".$satir."<br>";
flush();
// i'yi degistirmiyorum zaten for adımında kendisi degisiyor.
}