SORU
7 AĞUSTOS 2010, CUMARTESİ


Array_map, array_walk arasındaki fark array_filter

Tam olarak array_map, array_walk array_filter arasındaki fark nedir. Belgelerine bakın ben ne bir geri arama işlevi tarafından sağlanan bir dizi eylemi gerçekleştirmek için bir geçiş olabilir. Ama aralarında belirli bir fark göremiyorum.

Aynı şeyi gerçekleştirmek istiyorlar mı?
Birbirlerinin yerine kullanılabilirler mi?

Eğer hepsi farklıysa açıklayıcı örnek için yardımına minnettar olurum.

Teşekkürler

CEVAP
7 AĞUSTOS 2010, CUMARTESİ


  • array_map array_walk varken hiçbir teminat etkileri vardır; özellikle array_map asla bağımsız değişkenleri değiştirir.
  • array_map olamaz anahtarları array_walk olabilir dizi ile çalışır.
  • array_map, array_walk sadece bir dizi döndürür 12*/false*verir. Eğer bir dizi geçme sonucu bir dizi oluşturmak istiyorsanız Eğer doğru değilse, bu yüzden, array_walk kullanmalısınız.
  • array_map array_walk yalnızca bir işlevini sürdürürken diziler rastgele bir numara alabilirsiniz.
  • array_walk geri geçmek için ekstra keyfi bir parametre alabilir. PHP beri çoğunlukla alakasız bu 5.3 anonymous functions tanıtıldı.
  • Sonuçta elde edilen dizinin array_map/array_walk aynı sayıda elemanları olarak bağımsız değişken(ler); array_filter alır sadece alt unsurlarının dizi göre bir filtre işlevi. Anahtarları korumak.

Örnek:

<pre>
<?php

$origarray1 = array(2.4, 2.6, 3.5);
$origarray2 = array(2.4, 2.6, 3.5);

print_r(array_map('floor', $origarray1)); // $origarray1 stays the same

// changes $origarray2
array_walk($origarray2, function (&$v, $k) { $v = floor($v); }); 
print_r($origarray2);

// this is a more proper use of array_walk
array_walk($origarray1, function ($v, $k) { echo "$k => $v", "\n"; });

// array_map accepts several arrays
print_r(
    array_map(function ($a, $b) { return $a * $b; }, $origarray1, $origarray2)
);

// select only elements that are > 2.5
print_r(
    array_filter($origarray1, function ($a) { return $a > 2.5; })
);

?>
</pre>

Sonuç:

Array
(
    [0] => 2
    [1] => 2
    [2] => 3
)
Array
(
    [0] => 2
    [1] => 2
    [2] => 3
)
0 => 2.4
1 => 2.6
2 => 3.5
Array
(
    [0] => 4.8
    [1] => 5.2
    [2] => 10.5
)
Array
(
    [1] => 2.6
    [2] => 3.5
)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • Apple

    Apple

    22 HAZİRAN 2005
  • Crossover

    Crossover

    18 HAZİRAN 2007