Bu BİRÇOK kez yaşadım bir sorundur. PHP dizileri düzleştirmek için kolay bir yol yoktur. Sen döngü onları başka bir dizi ekleyerek gerekir. Size özgün yapısını kullanan ve flatten gerektiren değil verilerle çalışıyoruz nasıl yeniden düşünmeye başarısız.
EDIT: benim dizide 150,000 unsurlar vardı bir dizi $data = array(array('key' => value, 'value' => other_value), ...); oluşturuldu, ben metrik biraz bilgi eklemek düşündüm. Ben daha düzleşme 3 tipik yollarını koştu
$start = microtime();
$values = array_map(function($ele){return $ele['key'];}, $data);
$end = microtime();
Bir çalışma süresi Yapımcı: Run Time: 0.304405 5 kez Koşu hemen altında 0.30 süresini ortalama
$start = microtime();
$values = array();
foreach ($data as $value) {
$values[] = $value['key'];
}
$end = microtime();
0,165 ortalama ile Run Time: 0.167301 bir çalışma süresi üretti
$start = microtime();
$values = array();
for ($i = 0; $i < count($data); $i++) {
$values[] = $data[$i]['key'];
}
$end = microtime();
0,355 ortalama ile Run Time: 0.353524 bir çalışma süresi üretti
Her durumda veri dizisinde bir foreach kullanarak önemli ölçüde daha hızlı oldu. Bu büyük olasılıkla hte array_map() uygulanması için dizideki her öğe için bir fonksiyon icra yükü ile ilgilidir.
Ek Düzenleme: Önceden tanımlı bir işlevi ile bu test koştu. Aşağıda 'Fly' (tanımlı inline) için 10 iterasyon üzerinde ortalama numaraları ve (string arama) 'Pre Tanımlı'.
Averages:
On the fly: 0.29714539051056
Pre Defined: 0.31916437149048