İlginizi Çekebilir
  1. Ana Sayfa
  2. PHP

PHP Tek, İki Boyutlu, İlişkisel ve Üç Boyutlu Diziler

PHP Tek, İki Boyutlu, İlişkisel ve Üç Boyutlu Diziler
+ - 1

PHP’de dizi, sıralı bir Haritanın uygulamasıdır. Harita, anahtar değer çiftlerinin soyut bir veri türüdür. Bu bir arayüz, bir sözleşmedir.

Bir haritanın HashTable, HashMap, Dictionary, vb. gibi farklı uygulamaları olabilir. PHP’de, bir dizinin temel uygulaması aslında bir HashTable’ı işaret eder.

Bu nedenle, PHP’de bir HashTable veri türü arıyorsanız, hiçbir yere bakmayın, bu Dizinin kendisidir.

Dahili bilgileri öğrenmek için  Array ve HashTable için PHP kaynağını incelemenizi öneririm.

Diziyi, bir grup veriyi depolamak ve tek bir değişken adı aracılığıyla bunlara başvurmak için kullanabilirsiniz. Her dizi öğesi, bir anahtar ve değer çifti olarak depolanır.

Diziler, anahtar belirtimine göre “indekslenmiş dizi” ve “ilişkisel dizi” olarak sınıflandırılır. Dizine alınmış dizi, ‘0’ ile başlayan varsayılan dizine sahiptir. İlişkisel dizi, kullanıcı tanımlı anahtar dizini içerir.

Anahtarlar doğal sayılarla sınırlı değildir. Dizeleri de kullanabilirsiniz.

Map abstract data type representation

PHP’de Dizi nasıl oluşturulur?

Boş bir dizi

<?php $emptyArray = array(); ?>
Code language: HTML, XML (xml)

Tek boyutlu dizi

<?php $animals = array(“Lion”, “Tiger”, “Wolf”); $arrLength = count($animals); // dizi boyunca döngü for($i = 0; $i < $arrLength; $i++) { echo $animals[$i]; echo "</ br>"; } ?>
Code language: HTML, XML (xml)

ilişkisel dizi

<?php $animals = array("Lion"=>"Wild", "Sheep"=>"Domestic", "Tiger"=>"Wild"); // ilişkisel dizide dolaş ve anahtar değer çiftlerini al foreach($animals as $key => $value) { echo "Key=" . $key . ", Value=" . $value; echo "</br>"; } ?>
Code language: HTML, XML (xml)

iki boyutlu dizi

<?php // iki boyutlu dizi tanımı $animals = array ( array("Lion","Wild",8), array("Sheep","Domestic",12), array("Tiger","Wild",20) ); // iki boyutlu dizi yinelemesi for ($row = 0; $row < 3; $row++) { echo "<p>Row number $row</p>"; echo "<ul>"; for ($col = 0; $col < 3; $col++) { echo "<li>".$animals[$row][$col]."</li>"; } echo "</ul>"; } ?>
Code language: HTML, XML (xml)

Döngü aracılığıyla

<?php $animals = array(); for ($i = 0; $i < $count; $i++) { $animals[$i] = array ( $animalName[$i] , $animalType[$i] ); } ?>
Code language: HTML, XML (xml)

Üç boyutlu dizi

Three dimensional array
<?php $threeDArray = array( array( array("Lion", "Tiger"), array("Sheep", "Dog"), ), array( array("Apple", "Orange"), array("Tomato", "Potato"), ), ); ?>
Code language: HTML, XML (xml)

PHP Dizisinin boyutu nasıl bulunur?

Bir dizinin boyutunu bulmak için sayım işlevini kullanabilirsiniz. sizeof, işlev sayımının takma adıdır.

Sayım işleviyle ilgili büyük anlaşmanın ne olduğunu düşünebilirsiniz. Yeni başlayan biriyseniz, kesinlikle yeni bir şeyler öğreneceksiniz, bu yüzden okumaya devam edin ve bunu atlamayın. Ayrıca örnek komut dosyasını kontrol etmeyi unutmayın.

count

PHP sayım işlevinin söz dizimi şöyledir:

count(var array_variable, mode)
Code language: JavaScript (javascript)

Dizi_değişkeninin değeri ayarlanmamışsa veya boş bir diziye sahipse, sayı 0 döndürür. Dizi değilse, sayı 1 döndürür. PHP sürüm 7’den itibaren bir uyarı alırsınız.

Bu nedenle, bir PHP dizisinin boş olup olmadığını kontrol etmeniz gerektiğinde, sayım işlevini kullanmanız gerekir. Diziyi sayım işlevine ilettiğinizden emin olun.

<?php if (count($array) > 0) { echo "array has elements"; } else { echo "array is empty"; } ?>
Code language: HTML, XML (xml)

Bağımsız değişken modu isteğe bağlıdır ve dizi uzunluğunun hesaplanmasında kullanılacak çalışma modunu belirtir. Olası seçenekler,

  • COUNT_NORMAL – 0 derinliğinde bir dizinin uzunluğunu döndürür. Bu, varsayılan değerdir.
  • COUNT_RECURSIVE – n derinliğine ulaşana kadar özyinelemeli sayma işlemi için. Bu özyinelemeli çağrı, n derinliğine ulaşana veya program yürütme zaman sınırı geçene kadar sonsuza kadar devam edecektir.

Örnek : PHP count() mod seçeneği ile

Aşağıdaki komut dosyası, bir derinlik düzeyinde kullanılabilen bir dizi öğeyi hesaplamak için bir sayım işlevi örneğidir. Mod derinliğini belirleyebilmek için iki boyutlu bir dizi kullanalım.

$toys = array(array("name"=>"Mechanical Cars","category"=>"pull back"), array("name"=>"Jigsaw","category"=>"puzzles"), array("name"=>"HiTech Cars","category"=>"remote"), array("name"=>"Teddy Bears","category"=>"soft"), array("name"=>"Baby pillow","category"=>"soft"), array("name"=>"Chinese Checker","category"=>"puzzles"), array("name"=>"Jumbo Helicopter","category"=>"remote"));
Code language: PHP (php)

Şimdi, farklı olası mod seçeneklerini ileterek sayım işlevini çağırabiliriz.

$array_length["normal_count"] = count($toys,COUNT_NORMAL); //(OR) $array_length["default_count"] = count($toys); $array_length["recursive_count"] = count($toys,COUNT_RECURSIVE); print "<pre>"; print_r($array_length); print "</pre>";
Code language: PHP (php)

Yukarıdaki PHP kodunda, count() normal, varsayılan ve özyinelemeli modda çağrılır. Döndürülen değerler, uygun ad dizinleri belirtilerek $dizi_uzunluk adlı bir dizide depolanır.

Bu programın çıktısı aşağıdadır.

Array ( [normal_count] => 7 [default_count] => 7 [recursive_count] => 21 )
Code language: PHP (php)

sizeof

Bu sizeof işlevi, PHP sayım işlevinin bir takma adıdır. count() ile aynı argüman grubunu kabul eder.

Bu sizeof işlevi, PHP sayım işlevinin bir takma adıdır. count() ile aynı argüman grubunu kabul eder.

Bu sizeof işlevi, PHP sayım işlevinin bir takma adıdır. count() ile aynı argüman grubunu kabul eder.

PHP’de bir diziyi bir dizgeye nasıl dönüştürebilirim?

Bir diziyi dizeye dönüştürmek için yerleşik implode işlevini kullanabilirsiniz.

PHP Implode

implode işlevi, parametre olarak bir diziyi ve ayırıcıyı kabul eder. Dizi öğelerinin her birini birleştirir ve bunları iletilen ayırıcı argümanla ayırır. Örneğin,

$str_concat = "|"; $meaning_array = array("implode","join","concatenate"); $imploded_string = implode($str_concat,$meaning_array); echo $imploded_string; // implode|join|concatenate
Code language: PHP (php)

Ayırıcı olarak virgül (,) kullanırsanız diziyi CSV olarak gizleyebileceksiniz. Bu, birçok durumda yararlı bir yardımcı program olacaktır.

PHP’de bir değişkeni diziye nasıl dönüştürebilirim?

Bir dizeyi diziye dönüştürmek için yerleşik patlatma işlevini kullanabilirsiniz. split işlevi kullanımdan kaldırılmıştır ve bu nedenle onu bir dizeye dayalı dizi oluşturmak için kullanmayın.

PHP Explode

Explode , dizeyi belirli bir ayırıcıya dayalı olarak bir dizi öğeye bölmektir. patlatma, ayırıcıyı ve bir dizeyi bağımsız değişkeni olarak kabul eder.

$input_string = "implode|join|concatenate"; $str_explode = "|"; $exploded_array = explode($str_explode,$input_string ); echo "<pre>"; print_r($exploded_array); echo "</pre>";
Code language: PHP (php)

Bu örnek kod, yukarıda az önce gördüğümüz implode örneğinin elde edilen dize verilerini kabul eder. Patlatma, dize verilerini “|” bağımsız değişken ayırıcısına göre böler. Çıktı,

Array ( [0] => implode [1] => join [2] => concatenate )
Code language: PHP (php)

Explode Limit dahilinde

PHP explode(), explode işlemi gerçekleştirmek için hedef uzunluğu veya sınırı ayarlamak için üçüncü bir isteğe bağlı bağımsız değişken sınırını kabul eder. explode , sınır belirtilmezse tüm dizeyi varsayılan olarak alır.

$exploded_array = explode($str_explode,$input_string,2);

bu dönecek,

Array ( [0] => implode [1] => join|concatenate )
Code language: PHP (php)

Dizilerin kesişimini, farkını ve birliğini bulma

PHP, dizileri işlemek için çok çeşitli yerleşik işlevlere sahiptir. Diziler kullanılırken kesişim, fark ve birleşim oldukça düzenli bir şekilde gerçekleştirilir. PHP, bu işlemleri halletmek için yerleşik olarak iyi işlevlere sahiptir.

PHP array intersection difference union functions

dizi kesişimi

PHP array_intersect işlevi, diziler arasındaki kesişimi bulmak için kullanılır. Bu işlev, karşılaştırmak için birden çok bağımsız değişkeni kabul edebilir. Karşılaştırmadan sonra, bu işlev, tüm bağımsız değişken dizilerinde bulunan kesişen öğeler dizisini döndürür.

array_intersect($input_array1,$input_array2,$input_array3...)

Dizi kesişimi örneği

Bu örnekte, dört diziyi parametre olarak ileteceğiz.

<?php $soft_toys = array("Baby Pillow", "Teddy Bear", "Chicklings"); $baby_toys = array("Toy phone", "Baby Pillow", "Lighting Ball", "Teddy Bear"); $gift_items = array("Coloring Fun", "Baby Pillow", "Barbies", "Teddy Bear"); $kids_bedroom_set = array("Teddy Bear", "Baby Pillow", "Night Lamp","Kids Bed"); $arrayIntersect = array_intersect($soft_toys, $baby_toys, $gift_items, $kids_bedroom_set); print "<PRE>"; print_r($arrayIntersect); print "</PRE>"; ?>
Code language: HTML, XML (xml)

Bu program, dört giriş dizisinin tümünde bulunan değerleri içeren sonuç dizisini yazdırır. Çıktı,

Array( [0] => Baby Pillow [1] => Teddy Bear )
Code language: PHP (php)

PHP’deki diğer Dizi kesişim işlevleri

PHP, girdi dizileri arasındaki öğelerin kesişimini hesaplamak için daha çeşitli işlevler içerir.

  • array_intersect_key – anahtarlara göre kesişen öğeleri döndürür.
  • array_interset_assoc – anahtarlara ve değerlere göre kesişen öğeleri döndürür.
  • array_intersect_ukey – kesişim için bir algoritma sağlayarak özel işlev temelinde kesişen öğeleri döndürür.

dizi farkı

PHP dizi farkı fonksiyonlarını kullanarak, diziler arasındaki anahtarlara veya değerlere göre farklılıkları bulabiliriz.

Özel yapım işlevleri kullanarak dizin kontrolüne dayalı olarak dizi farklılıkları da bulunabilir. Geri arama olarak kullanılırlar.

  • array_diff_ukey
  • array_diff_uassoc

Liste devam ediyor. Girişlerini kullanıcı tanımlı geri arama işlevlerinin kullanımıyla karşılaştırarak.

  • array_udiff
  • array_udiff_assoc
  • array_udiff_uassoc

array_diff

En az iki diziyi kabul eder, ancak argümanları olarak herhangi bir sayıda dizide maksimum, bu nedenle, ilk dizideki öğeler, dizi öğelerinin geri kalanıyla karşılaştırılır.

array_diff_key

Bu işlev, dizi_diff işlevine benzer şekilde kullanılır, ancak dizi öğelerini anahtarlarına göre karşılaştırmak için kullanılır.

array_diff_assoc

Bu fonksiyon, verilen diziler arasındaki değerleri, bu değerlerle ilişkili anahtar indeksi dikkate alarak karşılaştırmak için kullanılır.

Dizi farkı örneği

<?php $array_from = array("fruit1" => "apple", "fruit2" => "grapes","friut3" =>"banana"); $array_against = array("fruit1" => "orange", "fruit2" => "grapes","friut4" => "banana"); $value_differences = array_diff($array_from, $array_against); $key_differences = array_diff_key($array_from, $array_against); $assoc_index_differences = array_diff_assoc($array_from, $array_against); print "<PRE>"; print_r($value_differences); print_r($key_differences); print_r($assoc_index_differences); print "</PRE>"; ?>
Code language: HTML, XML (xml)

Dizi farkı örneğinin çıktısı aşağıdaki gibidir:

Array ( [fruit1] => apple ) Array ( [friut3] => banana ) Array ( [fruit1] => apple [friut3] => banana )
Code language: PHP (php)

Geri arama ile PHP Dizi farkı – kapanışlar

Diziler arasındaki farkı bulmak için kendi özel mantığınızı tanımlamanız mümkündür. Geri arama için kullanıcı tanımlı işlevler geçirilebilir.

İşlevleri bağımsız değişken olarak iletmek, PHP’de harika bir özelliktir. Anonim işlevler olarak adlandırılırlar ve kapatmalar kullanılarak uygulanırlar.

  • array_diff_ukey , array_diff_uassoc anahtar ve dizin tabanlı farklılıklar için.
  • array_udiff , array_udiff_assoc değere dayalı dizi farkı için.
  • array_udiff_uassoc hem dizi değeri hem de anahtar dizin karşılaştırması yapmak için kullanılır.

Dizi anahtarlarından değişkenler oluşturma

PHP’nin dizi anahtarlarını kullanarak değişkenler oluşturmak için extract adlı bir işlevi vardır. Her dizi anahtarının adıyla PHP değişkenleri oluşturur. Giriş argümanı olarak ilişkisel bir dizi kullanır.

extract

Bu işlev, aşağıda listelendiği gibi üç bağımsız değişkeni kabul eder.

  • $input_array – Anahtarların PHP değişkenlerine dönüştürüldüğü ilişkisel dizi.
  • $extract_type – Yeni bir değişken oluşturma veya mevcut değişkenlerin üzerine yazma seçeneklerini tanımlar..
    • EXTR_OVERWRITE, EXTR_SKIP, EXTR_IF_EXISTS, EXTR_REFS seçeneklerdir
  • $variable_prefix – Oluşturulacak değişken adıyla ön eklenecek dize.

PHP extract Örnek

<?php $partA = ""; $partB = ""; $input_array = array("partA" => "Stories","partB" => "Rhymes", "partC" => "Concepts"); extract($input_array,<em>EXTR_OVERWRITE</em>); print '$partA='. $partA . '<br/>'; print '$partB='. $partB . '<br/>'; print '$partC='. $partC . '<br/>'; ?>
Code language: HTML, XML (xml)

extract Kullanırken Dikkat

Kullanıcı giriş verilerinde özü kullanmamalısınız. Bunu yaparsanız, güvenlik endişelerine neden olabilir. Ne yaptığınızı bilmiyorsanız, bu işlevi kullanmayın!

Sık kullanılan yerleşik Dizi işlevleri

PHP kod parçacığı örnekleriyle birlikte yaygın olarak kullanılan PHP dizi işlevlerinden bazılarını görelim.

range

PHP range() işlevi, başlangıç ​​ve bitiş parametreleri arasındaki aralıktaki öğe dizisini almak için kullanılır. Aralık sayısal veya alfabe olabilir. Aşağıdaki kod, “e” ve “i” arasında bulunan alfabe dizisinin nasıl alınacağını gösterir.

$character_array = range('e','i'); //  returns array('e','f','g','h','i');

reset

 reset() işlevi, dizi işaretçisinin konumunu sıfırlamak için kullanılır. Dizi işaretçisini orijinal konumuna taşımak için argüman olarak dizi değişkenini gerektirir.

$character_array = range('e','i'); // returns array('e','f','g','h','i'); print next($character_array); // prints f print next($character_array); // prints g reset($character_array); print current($character_array); // prints the first element 'e' after reset
Code language: PHP (php)

array_slice

Verilen girdi dizisinden alt diziyi almak için kullanılır. Giriş dizisini, başlangıç ​​konumunu ofset olarak ve alt dizinin uzunluğunu kabul eder.

Uzunluk parametresi isteğe bağlıdır. Belirtilmezse, giriş dizisinin uzunluğu varsayılan olarak alınacaktır. Dördüncü argüman, varsayılan dizin yeniden sıralama davranışından kaçınarak anahtarları korumaktır.

$color_array = array("Red","Blue","Green","Yellow","Brown"); sliced_array = array_slice($color_array,1,3);// now the sliced array will be array("Blue","Green","Yellow")
Code language: PHP (php)

array_splice

Bu işlev dizi_dilim işlevine benzer ve kaldırılan öğeleri yeni öğeler kümesiyle de değiştirebilir. Kaldırılan kümenin uzunluğu ile yeni dizinin uzunluğu aynı olmalıdır.

$character_array = array('e','f','g','h','i'); $number_array = array('1','2','3'); $changed_array = array_splice($character_array,1,3,$number_array); // will hold the element like: array('e','1','2','3','i');
Code language: PHP (php)

shuffle

Bu işlev, değerinin konumunu rastgele bir şekilde değiştirmek için bir argüman olarak diziye sahiptir.

array_chunk

array_chunk() bir diziyi belirtilen uzunlukta parçalara bölmek için kullanılır.

$character_array = array('e','f','g','h','i'); $chunks = array_chunk($character_array,2); //$chunks will be as follows /* Array ( [0] => Array ( [0] => e [1] => f ) [1] => Array ( [0] => g [1] => h ) [2] => Array ( [0] => i ) ) */
Code language: PHP (php)

merge

merge işlevi, bir veya daha fazla diziyi tek bir dizide birleştirmek içindir.

$color_array1 = array("Red","Blue","Green"); $color_array2 = array("Yellow","Brown"); // returns array("Red","Blue","Green","Yellow","Brown"); $color_array = array_merge($color_array1,$color_array2);
Code language: PHP (php)

array_key_exists

Bu fonksiyon, verilen anahtarın dizide olup olmadığını kontrol etmek için kullanılır. Bu işlev, bir anahtar öğeyi ve girdi dizisini bağımsız değişken olarak alır.

array_keys, array_values

Bu iki işlev, sırasıyla bir giriş dizisinin anahtarlarını ve değerlerini döndürür. Aşağıdaki kod, bu işlevlerin kullanım yöntemini ve sonuçta ortaya çıkan anahtar ve değer dizisini gösterir.

$student_array = array("name"=>"Martin","mark"=>"90","grade"=>"A"); $key_array = array_keys($student_array) // returns array("name","mark","grade") $value_array = array_values($student_array) // returns array("Martin","90","A")
Code language: PHP (php)

array_push, array_pop, array_shift, array_unshift

array_push() değerleri bir diziye göndermek için kullanılır. Bu işlevi kullanarak, belirli bir giriş dizisinin sonuna yeni bir öğe eklenecektir.

The array_pop() dizinin son elemanını almak için kullanılır.

The array_shift() ve array_unshift() yöntemler, array_push() ve array_pop() ile benzerdir. Ancak, ekleme ve geri alma işlemleri dizinin başlangıç konumunda gerçekleştirilir.

extract, compact

Compact() değişkeni bir diziye dönüştürmek için kullanılırken, extract() bir diziyi çıkarmak ve o dizinin öğesini değişkenler olarak dönüştürmek için kullanılır.

Örnek aşağıdaki gibi göstermektedir. Extract() öğesinin ikinci ve üçüncü argümanı isteğe bağlıdır. Değişken adına bir önek eklemek için kullanılır.

$student_array = array("name"=>"Martin","mark"=>"90","grade"=>"A"); extract($student_array,EXTR_PREFIX_ALL,"student"); echo $student_name . "-" . $student_mark . "(" . $student_grade . ")"; // prints as Martin - 90(A) $compact_array = compact("student_name","student_mark","student_grade"); // will form an array
Code language: PHP (php)

Yorum Yap

Yorumlar (1)

  1. Dizileri pek fazla aktif kullanmayan biri olarak büyük bir yanılgı içinde olduğumu burada incelediğim örnekler ile görmüş oldum. Örnekler gayet güzel ve açıklayıcı. Elinize sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.