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; özelliklearray_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ş:
ViewResult Arasındaki fark() ve Action...
Görev ve iplik arasındaki fark nedir?...
Oturum yakınlık ve yapışkan oturum ara...
Şifreleme ve asimetrik şifreleme imza ...
`Constexpr` ve `sabit arasındaki fark`...