$arr[] = array('A','B');
$arr[] = array('C','B');
...
I $arr
tüm alt dizisinin birleştirilmiş sonuç almak gerekiyor.
Ve çoğaltılamaz girişleri için, sadece tek bir getir gerekir.
Tamam ben kullanırsanız, aşağıdaki (I başarı olmadan kendim denedim, ben yanlış sürümü vardı) aslında mümkün olduğunu öğrendim başka bir soru ile PHP version >= 5.3.0:
$merged_array = array_reduce($arr, array_merge, array());
Yalnızca benzersiz değerleri isterseniz uygulayın array_unique
a> yapabilirsiniz:
$unique_merged_array = array_unique($merged_array);
Sadece diziler (yani diğer diziler) düz unsurları varsa, bu çalışır. Belgeleri:
Note:
array_unique()
çok boyutlu dizilerle çalışmak için tasarlanmamıştır unutmayın.
Eğer diziler diziler varsa, o zaman elle, örneğin kontrol etmelisiniz ile array_walk
a>:
$unique_values = array();
function unique_value($value, &$target_array) {
if(!in_array($value, $target_array, true))
$target_array[] = $value;
}
array_walk($merged_values, 'unique_value', $unique_values);
Ben bir iç döngüler (yani ne array_walk
yapıyor) açık döngüler daha en az not daha yavaş olduğunu varsayabiliriz düşünüyorum.