PHP'de bir dizi elemanlarının başına kelime eklemek için nasıl bir yöntem izlemeliyim?

php de bir array dizisindeki her elemanin basina bir kelime eklemek istiyorum. Bunu nasil yapabilirim ?

Kısa cevap: Her elemanın başına bir kelime eklemek için en kolay yollar array_map, array_walk veya foreach kullanmaktır; örneğin array_map ile yeni bir dizi döndürür veya foreach/array_walk ile mevcut diziyi yerinde (in-place) değiştirebilirsiniz.

Açıklama ve örnekler

Yöntem 1: array_map (yeni dizi döndürür)

Aşağıdaki örnek, orijinal diziyi değiştirmeden başına bir kelime eklenmiş yeni bir dizi oluşturur.

Kodu kullanma örneği:

<?php
// array_map ile prefix ekleme örneği
$prefix = 'ön-';
$array = ['elma', 'armut', 'muz'];

$result = array_map(function($v) use ($prefix) {
    return $prefix . $v;
}, $array);

print_r($result);

Notlar:

  • array_map tek bir diziyle kullanıldığında anahtarları korur (associative array için de geçerli).
  • Yeni bir dizi döner; orijinali değiştirmek istemiyorsanız uygundur.

Yöntem 2: foreach ile yerinde değiştirme

Mevcut diziyi değiştirmek isterseniz referans kullanarak basit ve hızlıdır.

Kodu kullanma örneği:

<?php
// foreach ile orijinal diziyi yerinde değiştirme
$prefix = 'ön-';
$array = ['elma', 'armut', 'muz'];

foreach ($array as &$value) {
    $value = $prefix . $value;
}
unset($value); // referans değişkeni temizle - önemli!

print_r($array);

Notlar:

  • foreach ile & (referans) kullanıldığında diziyi doğrudan değiştirirsiniz.
  • Döngüden sonra unset($value) yapmayı unutmayın; aksi halde sonraki kullanımlarda yan etkiler olabilir.

Yöntem 3: array_walk (yerinde değiştirir)

array_walk elemanları referansla parametre olarak alır ve orijinal diziyi değiştirir.

Kodu kullanma örneği:

<?php
// array_walk ile yerinde prefix ekleme
$prefix = 'ön-';
$array = ['elma', 'armut', 'muz'];

array_walk($array, function(&$v, $k) use ($prefix) {
    $v = $prefix . $v;
});

print_r($array);

Notlar:

  • array_walk fonksiyonu anahtarı da alır (gerekiyorsa kullanılabilir).
  • Orijinal dizi üzerinde değişiklik yapar.

Diğer dikkat edilmesi gerekenler / ipuçları

  • Eğer dizi elemanları sayısal değilse (ör. null veya array) önce string’e çevirmeniz gerekebilir: $prefix . (string)$value.
  • Çok boyutlu dizilerde (her eleman yine dizi ise) döngü veya recursive işlemler gerekir.
  • Performans açısından büyük dizilerde foreach genellikle en hızlıdır, fakat okunabilirlik açısından array_map/array_walk tercih edilebilir.

TERİMLER:

array_map: Bir dizinin her elemanına uygulanan fonksiyon sonucu yeni bir dizi döndüren PHP fonksiyonu.
array_walk: Dizinin elemanlarını referansla çağırıp orijinal diziyi değiştirmeye yarayan PHP fonksiyonu.
closure: Anonim fonksiyon; genelde function(…) use(…) { … } şeklinde yazılır.
foreach: PHP’de diziler üzerinde yineleme yapmak için kullanılan yapı.
referans (&): PHP’de bir değişkenin bellekteki aynı değere işaret etmesini sağlar; foreach ile kullanıldığında diziyi yerinde değiştirmek için kullanılır.

İstersen örnek dizine göre (associative, numeric, iç içe) spesifik bir kod yazayım.

1 Beğeni