PHP Dizi Fonksiyonları
PHP’de dizilerle çok sık çalışırız. Diziler üzerinde işlem yapmamızı kolaylaştıran birçok tanımlı fonksiyon vardır. Bunlardan bazılarını bu yazıda bulabilirsiniz.
explode() — string bir ifadeyi ayraca göre bölüp bir dizi(array) haline getirir.
1. Örnek
$pizza = "dilim1,dilim2,dilim3,dilim4,dilim5,dilim6";
$dilimler = explode(",", $pizza); // stringi her virgülden bölerek bir dizi haline getirdik.
echo $dilimler[0]; // dilim1
echo $dilimler[1]; // dilim2
2. örnek
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
implode() — Dizi elemanlarını birleştirip bir string elde eder.
$dizi = array('soyadı', 'eposta', 'telefon');
$string = implode(",", $array); //ilk parametre dizinin her elemanından sonra araya virgül attık.
echo $string ; // soyadı,eposta,telefon
count() — Bir dizideki eleman sayısını veya bir nesnedeki özellik sayısını döndürür.
$arr=[1,2,3,4,5];
echo count($arr); // 5
is_array() — Değişkenin bir dizi(array) içerip içermediğine bakar. Belirtilen değişken bir dizi içeriyorsa TRUE döner.
$string = "deneme";
$arr = [1,2,3];
is_array($string); // false
is_array($arr); // true
shuffle() — Verilen diznin elemanlarını rastgele sıralar.
$arr = [1,2,3,4,5,6];
shuffle($arr);
print_r($arr);
array_combine() — Anahtarlar(Key) için bir dizi, değerler(Value) için ise başka bir dizi kullanarak bir ilişkisel dizi oluşturur
$key = ["ad", "soyad"];
$value = ["uğur", "öksüz"];
$arr = array_combine($key, $value);
var_export($arr);
array_count_values() — Bir dizideki tüm değerleri sayar. Her elemandan kaçar adet olduğu bilgisini verir.
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array)); // 2 adet 1, 3 adet "hello", 1 adet "world" değerleri var
array_fill() — Bir diziyi değerlerle doldurur. Örnek ile bakalım:
$a = array_fill(5, 6, 'muz'); // 5. indeksten başlayarak 6 adet elemanın değerini muz yaptık
print_r($a);
array_flip() — Bir dizideki anahtarlarla değerleri yer değiştirir
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
array_key_exists() — Belirtilen anahtar veya indis dizide var mı diye bakar
$dizi = array('ilk' => 1, 'ikinci' => 4);
if (array_key_exists('ilk', $dizi)) {
echo "'ilk' elememanı dizide mevcut";
}
array_map() — Belirtilen dizilerin elemanlarına bir fonksiyon ile işlem yapmamızı sağlar.
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a); // dizinin elemanlarının herbirinin küpünü veren bir fonksiyon uyguladık.
print_r($b);
array_filter() — Bir dizinin elemanlarını bir geriçağırım fonksiyonu ile süzgeçten geçirir
function tek($var)
{
//tamsayı girdi tek sayı mı diye bakar
return($var & 1);
}
function cift($var)
{
//tamsayı girdi çift sayı mı diye bakar
return(!($var & 1));
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
print_r(array_filter($array1, "tek"));
print_r(array_filter($array2, "cift"));
array_merge() — Dizileri ardarda ekleyerek yeni bir dizi oluşturur.
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
array_rand() — Bir diziden belli sayıda rasgele eleman döndürür
$input = array("a", "b", "c", "d", "d");
$rand_keys = array_rand($input, 2); //diziden rastgele iki elemanı seçtik.
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
array_reverse() — Diziyi tersine sıralayıp döndürür
$girdi = array(1,2,3,4);
print_r(array_reverse($girdi));
print_r(array_reverse($girdi, true)); //indeks değerlerni de tersine sıralar.
array_search() — Bir dizide belirtilen değeri arar ve bulursa ilgili anahtarı döndürür
$array = array(0 => 'lacivert', 1 => 'sarı', 2 => 'yeşil', 3 => 'mavi');
echo array_search('mavi', $array); // $key = 2;
echo array_search('sarı', $array); // $key = 1;
in_array() — Bir dizide bir değerin varlığını araştırır. Büyük-küçük harfe duyarlıdır.
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Irix var";
}
if (in_array("mac", $os)) {
echo "Mac var";
}
//Büyük-küçük harf duyarlılığından dolayı ikinci if çalışmaz
array_shift() — Dizini başlangıcından bir eleman çeker
$deste = array("as", "papaz", "kız", "vale");
$kart = array_shift($deste);
echo "kart:" . $kart;
print_r($deste);
array_pop() — Dizinin sonundaki elemanı diziden çıkartır
$depo = array("portakal", "muz", "elma", "ahududu");
$meyve = array_pop($depo);
echo 'meyve: ' . $meyve;
print_r($depo);
array_slice() — Bir dizinin belli bir bölümünü döndürür
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // çıktısı: "c", "d", "e"
$output = array_slice($input, -2, 1); // çıktısı: "d"
$output = array_slice($input, 0, 3); // çıktısı: "a", "b", "c"
// dizi indisleri arasındaki farklara dikkat edin
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
array_sum() — Bir dizideki değerlerin toplamını hesaplar
$arr = [1,2,3,4,5];
echo array_sum($arr); // 15
array_product() — Bir dizideki değerlerin çarpımını bulur
// $arr = [3,4,5];
// echo array_product($arr); // 60
array_unique() — Diziden yinelenen değerleri siler
$girdi = array("a" => "yeşil", "kırmızı", "b" => "yeşil", "mavi", "kırmızı");
$sonuç = array_unique($girdi);
print_r($sonuç);
array_values() — Bir dizinin tüm değerlerini döndürür
$dizi = array("beden" => "XL", "renk" => "sarı");
print_r(array_values($dizi));
array_push() — Belli sayıda elemanı dizinin sonuna ekler
$küme = array("elma", "armut");
array_push($küme, "muz", "portakal");
print_r($küme);
$array[] = $var; Bu şekilde de diziye değer ekleyebiliriz. array_push() fonksiyonu ile aynı işi yapar.
array_unshift() — Bir dizinin başlangıcına bir veya daha fazla eleman ekler
$liste = array("ayva", "muz");
array_unshift($liste, "elma", "armut");
print_r($liste);
array_keys() — Bir dizideki tüm anahtarları veya bir anahtar altkümesini döndürür
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
current() — Bir diziden gösterici konumundaki elemanı döndürür
end() — Bir dizinin dahili göstericisini sonuncu elemana konumlandırır
next() — Dahili dizi göstericisini bir ilerletir
prev() — Dahili dizi göstericisini bir geriletir
reset() — Bir dizinin dahili göstericisini ilk elemana konumlar
each() — Bir diziden, gösterici konumundaki anahtar değer çiftini döndürdükten sonra göstericiyi bir ilerletir
$araç = array('tabanvay', 'bisiklet', 'otomobil', 'uçak');
$kip = current($araç); // $kip = 'tabanvay';
$kip = next($araç); // $kip = 'bisiklet';
$kip = current($araç); // $kip = 'bisiklet';
$kip = next($araç); // $kip = 'otomobil';
$kip = prev($araç); // $kip = 'bisiklet';
$kip = end($araç); // $kip = 'uçak';
$kip = current($araç); // $kip = 'uçak';
$arr = array();
var_dump(current($arr)); // bool(false)
$arr = array(array());
var_dump(current($arr)); // array(0) { }
extract() — Bir dizideki anahtar(key) değerleri değişken gibi kullanmamızı sağlar
$arr = [ "ad" => "Uğur", "soyad" => "öksüz",];
extract($arr);
echo $ad;
echo $soyad;
sort() – dizileri artan sırada sırala
rsort() – dizileri azalan sıralama
asort() – ilişkisel dizileri, değere göre artan düzende sıralar
ksort() – birleştirici dizileri, anahtara göre artan düzende sıralayın
arsort() – ilişkisel dizileri değere göre azalan düzende sıralar
krsort() – ilişkisel dizileri, anahtara göre azalan düzende sıralayın