Diziler 4. Hafta INTERNET TABANLI PROGRAMLAMA
2/26 Diziler Aynı adla bir çok değişken tanımlamak. $ulkeler = array(0=> "Almanya", 1 => "Ingiltere", 2=>"Fransa", 3=>"Hollanda"); print_r($ulkeler); foreach ($ulkeler as $ulke){ echo $ulke." ";} $ulkeler = array("de"=> "Almanya", "en"=> "Ingiltere", "fr"=>"Fransa", "ne"=>"Hollanda"); print_r($ulkeler); $ulkeler = array("Almanya" => array("baskent"=> "Berlin", "nufus" => ,), "Ingiltere" =>array ("baskent"=> "Londra", "nufus" => ), "Fransa" =>array("baskent"=> "Paris", "nufus" => )); print_r($ulkeler); echo " ", $ulkeler["Almanya"]["nufus"];
3/26 Dizi oluşturmak $ulke[0] = "Almanya"; $ulke[1] = "Ingiltere"; $ulke[2] = "Fransa"; $ulke[3] ="Hollanda"; echo $ulke[1]; $ulke[] = "Almanya"; $ulke[] = "Ingiltere"; $ulke[] = "Fransa"; $ulke[] ="Hollanda"; echo $ulke[3]; $ulke["Almanya"] = "15.Subat.1964"; $ulke["Ingiltere"] = "15.Mayis.1959"; $ulke["Fransa"] = "14.Nisan.1957"; $ulke["Hollanda"] ="15.Mayis.1955"; echo $ulke["Almanya"];
4/26 Dizi Verilerini Bir Dosyadan Almak // Dosyayi okuma ulkeler.txt $dosya = fopen("ulkeler.txt", "r"); // Sonuna kadar bütün satirlari oku while ($satir = fgets($dosya, 4096)) { // her bir parçayı ayrı ayrı olarak almak için explode() $ulkeler[]=list($ulke, $nufus, $kisaltma) = explode(",", $satir); echo $ulke, $nufus, $kisaltma, " "; } print_r ($ulkeler);
5/26 Dizi Verilerini Belirli Aralıklarla Oluşturmak $zar = range(0,6); // $zar = array(0,1,2,3,4,5,6) ayni işlemi yapar print_r( $zar); $cift = range(0,20,2); // $cift = array(0,2,4,6,8,10,12,14,16,18,20); ayni işlemi yapar print_r( $cift); $harfler = range("A","F"); // $harfler = array("A,","B","C","D","E","F"); ayni işlemi yapar print_r( $harfler);
6/26 Dizi Olduğunu Kontrol Etme $ulkeler = array("Almanya"); $ulke = "Fransa"; printf("\$ulkeler bir dizidir: %s ", (is_array($ulkeler) ? "Evet" : "Hayir")); printf("\$ulke bir dizidir: %s ", (is_array($ulke) ? "Evet" : "Hayir")); Dizilerin Önüne Veri Ekleme $ulkeler= array("Fransa","Almanya"); array_unshift($ulkeler,"Belçika","İspanya"); print_r($ulkeler); //Array ( [0] => Belçika [1] => Ispanya [2] => Fransa [3] => Almanya )
7/26 Dizilerin Sonuna Veri Ekleme $ulkeler= array("Fransa","Almanya"); array_push($ulkeler,"Belçika","İspanya"); print_r($ulkeler); //Array ( [0] => Fransa [1] => Almanya [2] => Belçika [3] => Ispanya ) Dizilerin Başındaki Veriyi Silme $ulkeler= array("Fransa","Almanya", "Belçika","İspanya"); $ulke=array_shift($ulkeler); print_r($ulkeler); //Array ( [0] => Almanya [1] => Belçika [2] => Ispanya ) print_r($ulke); // Fransa
8/26 Dizilerin Sonundaki Veriyi Silme $ulkeler= array("Fransa","Almanya", "Belçika","İspanya"); $ulke=array_pop($ulkeler); print_r($ulkeler); //Array ( [0] => Fransa [1] => Almanya [2] => Belçika ) print_r($ulke); // Ispanya Dizilerde Arama Yapmak $ulkeler= array("Fransa","Almanya", "Belçike","Ispanya"); $ulke="Almanya"; if(in_array($ulke, $ulkeler)) echo "Endişelenme, $ulke halka acik alanlarda sigara icmek yasak olan bir ulke degil";
9/26 Dizilerde Değişken Aramak $ulke["Almanya"] = "15.Subat.1964"; $ulke["Ingiltere"] = "15.Mayis.1959"; $ulke["Fransa"] = "14.Nisan.1957"; $ulke["Hollanda"] ="15.Mayis.1955"; if (array_key_exists("Fransa", $ulke)) printf("Fransa Avrupa Birliğinde %s tarihinde donem baskani oldu", $ulke["Fransa"]); Dizilerde Veri Aramak $ulke["Almanya"] = "15.Subat.1964"; $ulke["Ingiltere"] = "15.Mayis.1959"; $ulke["Fransa"] = "14.Nisan.1957"; $ulke["Hollanda"] ="15.Mayis.1955"; $bulundu = array_search("15.Mayis.1955", $ulke); if ($bulundu) printf("%s %s tarihinde donem baskani oldu.", $bulundu, $ulke[$bulundu]);
10/26 Dizilerin Değerlerini Yazdırmak $ulkeler = array("Almanya" => , "Ingiltere" => ); print_r (array_values($ulkeler)); //Array ( [0] => [1] => )
11/26 Dizilerde Değişkenleri yazdırmak $ulkeler = array("Almanya" => "Berlin", "Ingiltere" => "Londra"); echo " Bu ülkelerin baskantlerini soyleyebilirmisin? "; while($key = key($ulkeler)) { printf("%s ", $key); next($ulkeler); } Dizilerde Değerleri Yazdırmak $ulkeler = array("Almanya" => "Berlin", "Ingiltere" => "Londra"); echo " Bu sehirler hangi ulkelerin baskentidir "; while($baskentler = current($ulkeler)) { printf("%s ", $baskentler); next($ulkeler); }
12/26 Dizilerde ilk, sonraki, önceki, son değerlere gitmek $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Uzum"); echo current($meyveler); //Elma echo " ", next($meyveler); //Muz echo " ", reset($meyveler); //Elma echo " ", end($meyveler); //Uzum echo " ", prev($meyveler); //Mandalina Dizilerde Veri Sayısını Saymak $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Uzum"); echo count($meyveler); //6 üretir $meyveler = array("Elma", "Muz", array ("Nar", "Dut"), "Portakal", "Mandalina", "Uzum"); echo count($meyveler, 1); //8 üretir
13/26 Dizilerde Tekrar Eden Verileri Temizlemek $meyveler = array("Elma", "Muz", "Nar", "Dut", "Elma", "Portakal", "Muz", "Mandalina", "Uzum"); $kopyasiz=array_unique($meyveler); print_r($kopyasiz); //Array ( [0] => Elma [1] => Muz [2] => Nar [3] => Dut [5] => Portakal [7] => Mandalina [8] => Uzum ) Diziyi Tersten Yazdırmak print_r(array_reverse($kopyasiz)); //Array ( [0] => Uzum [1] => Mandalina [2] => Portakal [3] => Dut [4] => Nar [5] => Muz [6] => Elma ) Önce veriyi sonra değişkeni yazdırmak print_r(array_flip($kopyasiz)); //Array ( [Elma] => 0 [Muz] => 1 [Nar] => 2 [Dut] => 3 [Portakal] => 5 [Mandalina] => 7 [Uzum] => 8 )
14/26 Verileri Sıralamak $notlar = array(42,98,100,100,43,12); sort($notlar); print_r($notlar); //Array ( [0] => 12 [1] => 42 [2] => 43 [3] => 98 [4] => 100 [5] => 100 ) $meyveler = array("Elma", "Nar", "Dut", "Uzum"); sort($meyveler); print_r($meyveler); //Array ( [0] => Dut [1] => Elma [2] => Nar [3] => Uzum ) asort ile sıralamak $meyveler = array("Elma", "Nar", "Dut", "Uzum"); asort($meyveler); print_r($meyveler); //Array ( [2] => Dut [0] => Elma [1] => Nar [3] => Uzum )
15/26 Verileri Tersten Sıralamak $meyveler = array("Elma", "Nar", "Dut", "Uzum"); rsort($meyveler); print_r($meyveler); //Array ( [0] => Uzum [1] => Nar [2] => Elma [3] => Dut ) Verileri Tersten ve değiştirmeden Sıralamak $meyveler = array("Elma", "Nar", "Dut", "Uzum"); arsort($meyveler); print_r($meyveler); //Array ( [3] => Uzum [1] => Nar [0] => Elma [2] => Dut )
16/26 Verileri Doğal Sıralamak $meyveler = array("resim1.jpg", "resim10.jpg", "resim2.jpg", "resim20.jpg", "resim3.jpg"); sort($meyveler); print_r($meyveler); //Array ( [0] => resim1.jpg [1] => resim10.jpg [2] => resim2.jpg [3] => resim20.jpg [4] => resim3.jpg ) $meyveler = array("resim1.jpg", "resim10.jpg", "resim2.jpg", "resim20.jpg", "resim3.jpg"); natsort($meyveler); print_r($meyveler); Array ( [0] => resim1.jpg [2] => resim2.jpg [4] => resim3.jpg [1] => resim10.jpg [3] => resim20.jpg )
17/26 Verileri Doğal Sıralamak $meyveler = array("resim1.jpg", "RESIM10.jpg", "resim2.jpg", "RESIM20.jpg"); natsort($meyveler); print_r($meyveler); //Array ( [1] => RESIM10.jpg [3] => RESIM20.jpg [0] => resim1.jpg [2] => resim2.jpg ) natcasesort $meyveler = array("resim1.jpg", "RESIM10.jpg", "resim2.jpg", "RESIM20.jpg"); natcasesort($meyveler); print_r($meyveler); //Array ( [0] => resim1.jpg [2] => resim2.jpg [1] => RESIM10.jpg [3] => RESIM20.jpg )
18/26 indeks numarasına göre sıralamak $meyveler = array("resim1.jpg", "RESIM10.jpg", "resim2.jpg", "RESIM20.jpg"); ksort($meyveler); print_r($meyveler); //Array ( [0] => resim1.jpg [1] => RESIM10.jpg [2] => resim2.jpg [3] => RESIM20.jpg ) indeks numarasına göre tersten sıralamak $meyveler = array("resim1.jpg", "RESIM10.jpg", "resim2.jpg", "RESIM20.jpg"); krsort($meyveler); print_r($meyveler); //Array ( [3] => RESIM20.jpg [2] => resim2.jpg [1] => RESIM10.jpg [0] => resim1.jpg )
19/26 Dizileri Birleştirmek $yuzler = array("J","Q","K","A"); $numaralam = array("2","3","4","5","6","7","8","9"); $kartlar = array_merge($yuzler, $numaralam); print_r($kartlar); Dizileri karıştırmak $yuzler = array("J","Q","K","A"); $numaralam = array("2","3","4","5","6","7","8","9"); $kartlar = array_merge($yuzler, $numaralam); shuffle($kartlar); print_r($kartlar);
20/26 Tekrarlanan indeksleri birleştirmek $sinif1 = array("ercan" => 100, "ayhan" => 85); $sinif2 = array("osman" => 78, "ercan" => 45); $sinifNotlari = array_merge_recursive($sinif1, $sinif2); print_r($sinifNotlari); //Array ( [ercan] => Array ( [0] => 100 [1] => 45 ) [ayhan] => 85 [osman] => 78 ) İki diziyi kaynaştırmak $kisaltma = array("fr","de","be","sp"); $ulkeler= array("Fransa","Almanya", "Belçika","İspanya"); $liste = array_combine($kisaltma, $ulkeler); print_r($liste); //Array ( [fr] => Fransa [de] => Almanya [be] => Belçika [sp] => İspanya ) *Eleman sayısının aynı olması gerekir.
21/26 Dizileri Kesip Yeni Dizi Oluşturmak $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_slice($meyveler, 4); print_r ($yenimeyveler); //Array ( [0] => Mandalina [1] => Ayva [2] => Seftali [3] => Uzum ) $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_slice($meyveler, 4, 2); print_r ($yenimeyveler); //Array ( [0] => Mandalina [1] => Ayva ) $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_slice($meyveler, -5, -2); print_r ($yenimeyveler); //Array ( [0] => Portakal [1] => Mandalina [2] => Ayva )
22/26 Dizileri Uc Uca Ekleme (Slice ile aynı) $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_splice($meyveler, 4); print_r ($yenimeyveler); //Array ( [0] => Mandalina [1] => Ayva [2] => Seftali [3] => Uzum ) $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_splice($meyveler, 4, 2); print_r ($yenimeyveler); //Array ( [0] => Mandalina [1] => Ayva ) $meyveler = array("Elma", "Muz", "Nar", "Portakal", "Mandalina", "Ayva", "Seftali","Uzum"); $yenimeyveler = array_splice($meyveler, -5, -2); print_r ($yenimeyveler); //Array ( [0] => Portakal [1] => Mandalina [2] => Ayva )
23/26 Kesişen değerler $array1 = array("OH","CA","NY","HI","CT"); $array2 = array("OH","CA","HI","NY","IA"); $array3 = array("TX","MD","NE","OH","HI"); $kesisim = array_intersect($array1, $array2, $array3); print_r($kesisim); //Array ( [0] => OH [3] => HI ) Kesişen değerleri indekslerle beraber almak $array1 = array("OH" => "Ohio", "CA" => "California", "HI" => "Hawaii"); $array2 = array("50" => "Hawaii", "CA" => "California", "OH" => "Ohio"); $array3 = array("TX" => "Texas", "MD" => "Maryland", "OH" => "Ohio“, "HI" => "Hawaii"); $kesisim = array_intersect_assoc($array1, $array2, $array3); print_r($kesisim); //Array ( [OH] => Ohio ) //Hawaii örneğine dikkat
24/26 Kesişmeyen değerler $array1 = array("OH","CA","NY","HI","CT"); $array2 = array("OH","CA","HI","NY","IA"); $array3 = array("TX","MD","NE","OH","HI"); $farklar = array_diff($array1, $array2, $array3); print_r($farklar); //Array ( [4] => CT ) //ilk dizide olup diğerlerinde olmayan değerler İndeksleri ile kesişmeyen değerler $array1 = array("OH" => "Ohio", "CA" => "California", "HI" => "Hawaii"); $array2 = array("50" => "Hawaii", "CA" => "California", "OH" => "Ohio"); $array3 = array("TX" => "Texas", "MD" => "Maryland", "KS" => "Kansas"); $farklar = array_diff_assoc($array1, $array2, $array3); print_r($farklar); //Array ( [HI] => Hawaii )
25/26 Diziden rastgele değerler almak $sinif1 = array("ercan" => 100, "ayhan" => 85, "osman" => 78, "ercan" => 45); $rastgeleIsimler = array_rand($sinif1, 2); print_r($rastgeleIsimler); //array ( [0] => ayhan [1] => osman ) $kartlar=array("jh","js","jd","jc","qh","qs","qd","qc","kh","ks","kd","kc“,"ah","as“,"ad","ac"); // kartlari karıştır shuffle($kartlar); print_r($kartlar); Dizileri Toplamak $grades = array(42,“145hello",42); $total = array_sum($grades); print $total;
26/26 Diziden yeni diziler oluşturmak $kartlar = array("jh","js","jd","jc","qh","qs","qd","qc", "kh","ks","kd","kc","ah","as","ad","ac"); // kartlari karıştır shuffle($kartlar); // Diziyi 5'li dizilere bolmek için chunk kullan $eldekiler = array_chunk($kartlar, 5); print_r($eldekiler); Kullanıcı tanımına göre sıralama yaptırmak usort();