Benim veritabanında (~ 1500 satırlar, 10-15 alanlar ile her biri) çekti veri büyücek bir tablo var ve ben filtre bir dizi yapıyor ve bazı istatistikleri üreten ve indirmek için kullanıcı için bir excel elektronik tablo bu depolama ediyorum.
(BY WHERE ve ORDER) sadece küçük değişiklikler ile tekrar aynı oldukça komplike sorgusu ile veritabanı vurmak yerine, ben büyük bir diziye sonuçları koyarak ve ardından {[kullanarak, DB bir yolculuk yapıyorum (0)]} ve array_multisort
verilerin benim yeni görüşlerini almak için.
I array_multisort
yeniyim yüzden ben eleştirisi için burada ne yaptık göndeririz.
// an numerical array of associative arrays
$records = $dbResult->convertToArray();
$fields = $dbResult->getFieldNames();
// this is run once at the start
$sortArr = array();
foreach ($fields as $field) $sortArr[$field] = array();
foreach ($records as $r) {
foreach ($r as $key => $value) {
$sortArr[$key][] = $value;
}
}
// and then to sort:
array_multisort(
$sortArr['Date Completed'], SORT_DESC,
$sortArr['Last Name'], SORT_ASC,
$sortArr['First Name'], SORT_ASC,
$sortArr['Course'], SORT_ASC,
$records
);
Bu ilk "başka diziye tüm sonuç kopyalamak", olsa çalışıyor bana garip geliyor. Ben tekrar sıralamak için gerektiğinde sorun oluşur. Ben benim $sortArr
$records
dizisi ile senkronize kalmak için ihtiyacı his var, ama her tür bozulur sonra söyledi.
Ben bu array_multisort
amaçlanan kullanımı olduğunu bile emin değilim, o yüzden burada izlemek yolu kapalı olabilir. Herkes bazı tavsiye veya ipuçları verebilir misiniz? Nasıl yok you tür çok boyutlu diziler?