PHP iç içe arraylar

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


mr.yek

Üyecik
Katılım
5 Eki 2018
Mesajlar
5
Puanları
1
Arkadaşlar merhaba. Belki bu sorumun cevabı cevaplayan için biraz zahmetli olacak ama rica ediyorum bilen birisi açıklasın. PHP programlamaya başladım ve arraylar konusuna geldim. Farklı dillerde arraylar konusunda hiçbir sıkıntım yok ama bu php beni bitirdi. Boş boş bakıyorum resmen ekrana. Soruma geçeyim ve yardım istediğim parçalar kısmında olabildiğince açık olacak şekilde sorayım.
Şimdi şöyle bir kod var. konu iç içe arraylar .Ne işe yaradığını kısaca anlatayım. 1-150 arası sayıları ve onların bölenlerini yazdıran bir program. Soruları anlamadığım parçaları yanında yorum satırı olarak belirttim şimdiden herkese çok teşekkür ederim.

Not= sorular bilen bir insana göre çok saçma gelebilir ama yine de cevaplarsanız çok sevinirim. Kod bu haliyle çalışıyor. kopyalayıp editöre yapıştırırsanız daha kolay okuyabilirsiniz. Sıkıntımın özeti şu: diğer programlama dilleriyle php deki iç içe array mantığı ve bu arraylarin elemanlarına erişme mantığı çok farklı geldi bana. bunu anlamaya çalışıyorum.

Not 2= Okunması kolay olacak şekilde yazdım ama paylaşınca yorum satırlarım kayıyor. Editöre kopyalamanızı tavsiye ederim

<?php
$dizi = array();
$sayilar=array();
for ($i=1; $i <=150 ; $i++)
{
$dizi["sayi"]=$i;
$dizi["bolen"]=array();
for ($j=1; $j <=$i ; $j++)
{
if ($i%$j==0)
{
$dizi["bolen"][]=$j;

}
}
$sayilar[]=$dizi; // burada [] işaretini kaldırdığımda hata veriyor. ama alttaki ilk for döngüsünde [] işareti koyunca hata veriyor. hadi burayı anladım dizi olduğu için, // aşağıdaki for nasıl çalışıyor? sonuçta $sayılar dizisinin içinde hem ["bolen"] hem["sayi"] var. ama o döngünün 150 defa dönmesi gerek. kod [bolen]
// kısmını almayacağını nasıl anlıyor?(1. soru)

}

for ($i=0; $i <count($sayilar) ; $i++) // (ilk for döngüsü diye bahsettiğim kısım)
{
echo "Sayı:".$sayilar[$i]["sayi"]. "** Bölenleri:";

for ($j=0; $j <count($sayilar[$i]["bolen"]) ; $j++) // burada for döngüsü ["bolen"] kısmının içindeki eleman sayısı kadar işlemeli ama buraya sadece
// count($sayilar[$i]["bolen"]) yazdık. $sayilar[$i]["bolen"] bu bir diziyi belirtmiyor mu? elemanları içinde //gezinebilmek için bir indis daha koymamız gerekmez mi?(soru 2)
{
echo $sayilar[$i]["bolen"][$j]." ";

}
echo "<br/>";
}
?>
 
Üst
stat counter