PHP Dizi Fonksiyonları

Merhaba arkadaşlar, bu makalede sizlere PHP’de diziler’de sıkça kullanılan dizi fonksiyonlarından bahsetmek istiyorum. Mümkün olduğunca örneklerle ve fonksiyonların eksik kaldığı yerlerde kendimce çözümlerle sizlere bu dizi mevzusunu aktaracağım. Şimdiden iyi okumalar 🙂

print_r()

Bir değişkenin depoladığı herşeyi okunabilir bir şekilde bize çıktısını verir.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'yas' => 24
];
print_r($arr);
/*
Array
(
    [ad] => tayfun
    [soyad] => erbilen
    [yas] => 24
)
*/

var_dump()

Bir değişkenin depoladığı herşeyi daha detaylı olarak programlamatik bir şekilde bize çıktısını verir.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'yas' => 24
];
var_dump($arr);
/*
array(3) {
  ["ad"]=>
  string(6) "tayfun"
  ["soyad"]=>
  string(7) "erbilen"
  ["yas"]=>
  int(24)
}
*/

explode()

Bir ifadeyi belli bir karakterden parçalayarak dizi haline getirmek için kullanılır.

$string = 'tayfun|erbilen|24';
$arr = explode('|', $string);
print_r($arr);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
    [2] => 24
)
*/

implode()

Bir diziyi belli bir karakter ile string ifadeye döndürmek için kullanılır.

$arr = ['tayfun', 'erbilen'];
echo implode(', ', $arr); // Çıktı: tayfun, erbilen

count()

Dizinin toplam eleman sayısını bulmak için kullanılır.

$arr = ["tayfun","erbilen"];
echo count($arr); // Çıktı: 2

is_array()

Bir değerin dizi olup olmadığını anlamamızı sağlar.

$arr = ['tayfun'];
if (is_array($arr)){
   echo 'bu bir dizidir';
}

shuffle()

Dizi elemanlarını rasgele sıralamak için kullanılır.

$arr = ["tayfun","erbilen","ahmet","abi"];
shuffle($arr); // rasgele sırala
print_r($arr);

array_combine()

İki farklı diziyi anahtar-değer olarak birleştirmek için kullanılır.

$arr1 = ["ad","soyad"];
$arr2 = ["tayfun","erbilen"];
$arr3 = array_combine($arr1, $arr2);

print_r($arr3);
/*
Array
(
    [ad] => tayfun
    [soyad] => erbilen
)
*/

array_count_values()

Dizideki elemanların kaç kez tekrarlandığını öğrenmek için kullanılır.

$arr = ["tayfun","erbilen","tayfun","ahmet","abi","ahmet"];
$arr2 = array_count_values($arr);

print_r($arr2);
/*
Array
(
    [tayfun] => 2
    [erbilen] => 1
    [ahmet] => 2
    [abi] => 1
)
*/

array_flip()

Anahtarlar ile değerlerin yerlerini değiştitmek için kullanılır.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$arr2 = array_flip($arr);

print_r($arr2);

/*
Array
(
    [tayfun] => ad
    [erbilen] => soyad
)
*/

array_key_exists()

Dizi içinde belirlediğimiz anahtarın olup olmadığının kontrolü için kullanılır.

$arr = [
    'ad' => 'tayfun'
];

if (array_key_exists('ad', $arr)){
    echo 'ad değeri bu dizide bulunuyor';
} else {
    echo 'aradığınız değer dizide bulunamadı!';
}

Bu fonksiyon ile iç içe dizilerde doğru sonucu alamıyoruz. Bu yüzden kendimiz basit bir recursive fonksiyon yazabiliriz;

function _array_key_exists($cur_key, $arr){
    foreach ($arr as $key => $val){
        if ($key == $cur_key){
            return true;
        }
        if (is_array($val)){
            return _array_key_exists($cur_key, $val);
        }
    }
    return false;
}

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'a' => [
        'b' => [
            'c' => 'd'
        ]
    ]
];

echo _array_key_exists('c', $arr); // Çıktı: 1

array_map()

Dizideki her elemanı tek tek alarak işlem yapmak için kullanılır.

function arr_filtre($item){
    return $item * 2;
}

$arr = [1,2,3,4,5];
$arr = array_map('arr_filtre', $arr);

print_r($arr);

/*
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
*/

Bu işlemi aynı zamanda anonim fonksiyon olarakta yapabilirsiniz.

<

pre>$arr = [1,2,3,4,5];
$arr = array_map(function($item){
return $item * 2;
}, $arr);

array_filter()

Dizideki her elemanı tek tek alarak işlem yapmak için kullanılır. Geriye ise filtrelenmiş bir dizi döner.

$arr = [2, 3, 4, 5];
array_filter($arr, function ($a) {
    return $a > 2 && $a < 5;
});
/*
Array
(
    [1] => 3
    [2] => 4
)
*/

array_merge()

Dizileri birleştirmek için kullanılır.

$arr1 = ["tayfun","erbilen"];
$arr2 = ["ahmet","abi"];

$arr = array_merge($arr1, $arr2);

print_r($arr);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
    [2] => ahmet
    [3] => abi
)
*/

array_rand()

Dizi değerlerinden rasgele değer seçmek için kullanılır.

$arr = ["tayfun","erbilen","ahmet","abi"];
$random = array_rand($arr, 2); // 2 tane

print_r($random);

Bu fonksiyon bize dizi içerisindeki rasgele 2 elemanın anahtar değerlerini döndürecek. Bunu direk dizi elemanlarına çevirmek için array_map() fonksiyonu ile birlikte kullanabiliriz.

$arr = ["tayfun","erbilen","ahmet","abi"];
$random = array_rand($arr, 2); // 2 tane

$items = array_map(function($index) use ($arr){
    return $arr[$index];
}, $random);

print_r($items);

array_reverse()

Dizi elemanlarını tersten sıralamak için kullanılır.

$arr = ["tayfun","erbilen"];
$reverse_arr = array_reverse($arr);

print_r($reverse_arr);
/*
Array
(
    [0] => erbilen
    [1] => tayfun
)
*/

array_search()

Dizide değer aramak için kullanılır değer varsa geriye değerin anahtarı döndürülür.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$test = array_search('erbilen', $arr);
echo $test; // Çıktı: soyad

Ancak bu fonksiyon iç içe dizilerde çalışmamaktadır. Bunun için kendimiz basit bir recursive fonksiyon hazırlayabiliriz.

function find($cur_val, $arr)
{
    static $keys = [];
    foreach ($arr as $key => $val){
        if (is_array($val)){
            $keys[] = $key;
            return find($cur_val, $val);
        } else {
            if ($val == $cur_val)
                $keys[] = $key;
        }
    }
    return $keys;
}

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'yetenekler' => [
        'bisiklet',
        'motor',
        'a' => [
            'ahmet',
            'abi'
        ]
    ]
];

$keys = find('ahmet', $arr);
print_r($keys);
/*
Array
(
    [0] => yetenekler
    [1] => a
    [2] => 0
)
*/

in_array()

array_search() ile aynı mantıkta ve yetersizlikte çalışır. Tek farkı bu sadece olup olmadığını kontrol eder, varsa 1 yoksa 0 değerini döndürür.

$arr = ['tayfun','erbilen'];
echo in_array('erbilen', $arr);

array_shift()

Dizinin ilk elemanını seçip çıkartmak için kullanılır.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$first_value = array_shift($arr);
echo $first_value; // Çıktı: tayfun

print_r($arr);
/*
Array
(
    [soyad] => erbilen
)
*/

array_pop()

Dizinin son elemanını seçip çıkartmak için kullanılır.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$last_value = array_pop($arr);
echo $last_value; // Çıktı: erbilen

print_r($arr);
/*
Array
(
    [ad] => tayfun
)
*/

array_slice()

Dizinin belli bir aralığını seçmek için kullanılır.

$arr = [1,2,3,4,5];

// ilk 2 eleman hariç hepsi
$arr2 = array_slice($arr,2);
print_r($arr2);

// 3'den başla 2 eleman seç
$arr3 = array_slice($arr, 2, 2);
print_r($arr3);
/*
Array
(
    [0] => 3
    [1] => 4
)
*/

// son 2 eleman
$arr4 = array_slice($arr, -2);
print_r($arr4);

array_sum()

Dizi değerlerinin toplamını bulmak için kullanılır.

$arr = [1,2,3,4,5];
$total = array_sum($arr);

echo $total; // Çıktı: 15

array_product()

Dizi değerlerinin çarpımını bulmak için kullanılır.

$arr = [1,2,3,4,5];
$product = array_product($arr);

echo $product; // Çıktı: 120

array_unique()

Dizide tekrarlanan değerleri silmek için kullanılır.

$arr = ['tayfun','erbilen','tayfun','ahmet','tayfun'];
$arr2 = array_unique($arr);
print_r($arr2);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
    [3] => ahmet
)
*/

array_values()

Mevcut dizide anahtarlar varsa onları kaldırarak yeni bir dizi haline getirir. Bu fonksiyon aynı zamanda anahtar değerlerini yeniden düzenlemek içinde kullanılır. Örneğin yukarıdaki örnekte tekrarlananlar çıkınca dizi 0-1-3 şeklinde anahtar değerleri gözüktü. Bu fonksiyondan geçirerek bunu düzeltebiliriz.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$arr2 = array_values($arr);
print_r($arr2);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
)
*/

array_push()

Dizinin sonuna yeni bir eleman eklemek için kullanılır.

$arr = ["tayfun","erbilen"];
array_push($arr, 'ahmet');

print_r($arr);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
    [2] => ahmet
)
*/

Birden fazla eklemek isterseniz;

array_push($arr, 'ahmet', 'abi', 'test');

Ayrıca bu fonksiyonu kullanmadan şu şekilde de diziye ekleme yapabiliriz.

$arr = ["tayfun","erbilen"];
$arr[] = 'ahmet';

print_r($arr);

Bu fonksiyon ile anahtarlı bir dizi değeri ekleyemiyoruz. Anahtarlı dizi değeri eklemek istersek;

$arr = ["tayfun","erbilen"];
$arr['ad'] = 'ahmet';

print_r($arr);
/*
Array
(
    [0] => tayfun
    [1] => erbilen
    [ad] => ahmet
)
*/

array_unshift()

Dizinin başına yeni eleman eklemek için kullanılır.

$arr = ["tayfun","erbilen"];
array_unshift($arr, 'ahmet');
print_r($arr);
/*
Array
(
    [0] => ahmet
    [1] => tayfun
    [2] => erbilen
)
*/

Bu fonksiyonda da yine başa eklerken anahtar ile ekleyemiyoruz. Eğer başa anahtarla eklemek istersek;

$arr = ["tayfun","erbilen"];
$arr2['ad'] = 'ahmet';
$arr = array_merge($arr2, $arr);

print_r($arr);

array_keys()

Dizinin anahtarlarını listelemek için kullanılır.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

$keys = array_keys($arr);
print_r($keys);
/*
Array
(
    [0] => ad
    [1] => soyad
)
*/

Bu fonksiyon ile iç içe bir dizide tüm anahtarları alamıyoruz. Bunun için kendimiz şöyle bir fonksiyon yazabiliriz;

function all_array_keys($arr)
{
    static $keys = [];
    foreach ($arr as $key => $val){
        $keys[] = $key;
        if (is_array($val))
            return all_array_keys($val);
    }
    return $keys;
}

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen',
    'a' => [
        'b' => 'c',
        'd' => [
            'e' => 'f'
        ]
    ]
];

$keys = all_array_keys($arr);
print_r($keys);
/*
Array
(
    [0] => ad
    [1] => soyad
    [2] => a
    [3] => b
    [4] => d
    [5] => e
)
*/

current()

Dizideki ilk elemanı bulmak için kullanılır.

$arr = ['tayfun', 'erbilen'];
echo current($arr); // Çıktı: tayfun

end()

Dizinin son elemanını seçmek için kullanılır.

$arr = ['tayfun', 'erbilen', 'ahmet'];
echo end($arr); // Çıktı: ahmet

Not: PHP’nin eski sürümlerinde doğrudan echo ile ekrana yazdırmak hata verebiliyor. Öyle bir durumda değişkene aktarıp değişkeni ekrana yazdırırsanız sorun düzelecektir.

next() – prev()

Dizide önceki ve sonraki elemanları bulmak için kullanılır.

$arr = ['tayfun', 'erbilen', 'ahmet', 'abi', 'test'];
echo next($arr); // Çıktı: erbilen

Ayrıca bunu birden fazla kez kullanarak elemanları seçebilirsiniz.

$arr = ['tayfun', 'erbilen', 'ahmet', 'abi', 'test'];
echo next($arr); // Çıktı: erbilen
echo next($arr); // Çıktı: ahmet
echo next($arr); // Çıktı: abi

Öncekini bulmak için ise;

$arr = ['tayfun', 'erbilen', 'ahmet', 'abi', 'test'];
echo next($arr); // Çıktı: erbilen
echo prev($arr); // Çıktı: tayfun

Bunda da yine birden fazla kez kullanarak önceki elemanları seçebilirsiniz.

reset()

next() ve prev() fonksiyonları ile yaptığımız işlemi sıfırlayarak başa döndürmek için kullanılır.

$arr = ['tayfun', 'erbilen', 'ahmet'];
echo next($arr); // Çıktı: erbilen
echo next($arr); // Çıktı: ahmet
echo reset($arr); // Çıktı: tayfun
echo next($arr); // Çıktı: erbilen

extract()

Dizideki anahtarları değişken olarak kullanmak için kullanılır.

$arr = [
    'ad' => 'tayfun',
    'soyad' => 'erbilen'
];

extract($arr);

echo $ad; // Çıktı: tayfun
echo $soyad; // Çıktı: erbilen

asort()

Dizideki değerlere göre A’dan Z’ye doğru sıralamak için kullanılır.

$arr = [3,1,6,4];
print_r($arr);
/*
Array
(
    [0] => 3
    [1] => 1
    [2] => 6
    [3] => 4
)
*/
asort($arr);
print_r($arr);
/*
Array
(
    [1] => 1
    [0] => 3
    [3] => 4
    [2] => 6
)
*/

arsort()

Dizideki değerlere göre Z’den A’ya doğru sıralamak için kullanılır.

$arr = [3,1,6,4];
print_r($arr);
/*
Array
(
    [0] => 3
    [1] => 1
    [2] => 6
    [3] => 4
)
*/
arsort($arr);
print_r($arr);
/*
Array
(
    [2] => 6
    [3] => 4
    [0] => 3
    [1] => 1
)
*/

ksort()

Dizideki anahtarlara göre A’dan Z’ye doğru sıralamak için kullanılır.

$arr = [
    '1' => 'erbilen',
    '3' => 'tayfun',
    '2' => 'developer'
];
print_r($arr);
/*
Array
(
    [1] => erbilen
    [3] => tayfun
    [2] => developer
)
*/
ksort($arr);
print_r($arr);
/*
Array
(
    [1] => erbilen
    [2] => developer
    [3] => tayfun
)
*/

krsort()

Dizideki anahtarlara göre Z’den A’ya doğru sıralamak için kullanılır.

$arr = [
    '1' => 'erbilen',
    '3' => 'tayfun',
    '2' => 'developer'
];
print_r($arr);
/*
Array
(
    [1] => erbilen
    [3] => tayfun
    [2] => developer
)
*/
krsort($arr);
print_r($arr);
/*
Array
(
    [3] => tayfun
    [2] => developer
    [1] => erbilen
)
*/

Yayınlayan

Tayfun Erbilen

2009’dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“PHP Dizi Fonksiyonları” üzerine 3 yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir