في بعض الأحيان، لا يمكن استخدام نتائج استعلام قاعدة البيانات بشكل مباشر، مثل النتائج التي تم الحصول عليها باستخدام عبارة in في الخلية، لذلك يجب فرز النتائج بطريقة ما.
مثال 4. فرز نتائج قاعدة البيانات
في هذا المثال، تمثل كل خلية في مصفوفة البيانات صفًا في جدول. هذه مجموعة نموذجية من البيانات المسجلة في قاعدة البيانات.
البيانات الموجودة في المثال هي كما يلي:
إصدار المجلد |
-------+--------
67 |.2
86 |.1
85 |.6
98 |.2
86 |.6
67 |
يتم تخزين جميع البيانات في صفيف يسمى البيانات. عادةً ما يتم الحصول على ذلك من قاعدة البيانات من خلال حلقة، مثل mysql_fetch_assoc().
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>
http://sucai.knowsky.com/
في هذا المثال، سيتم فرز المجلد بترتيب تنازلي وسيتم فرز الطبعة بترتيب تصاعدي.
الآن لديك مصفوفة تحتوي على صفوف، لكن array_multisort() تتطلب مصفوفة تحتوي على أعمدة، لذا استخدم الكود التالي للحصول على الأعمدة ثم قم بفرزها.
// احصل على قائمة الأعمدة
foreach ($ البيانات كمفتاح $ => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// رتب البيانات ترتيبًا تنازليًا حسب الحجم وترتيبًا تصاعديًا حسب الإصدار
// استخدم بيانات $ كمعلمة أخيرة، وقم بالفرز حسب المفتاح المشترك
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
تم الآن فرز مجموعة البيانات، وكانت النتائج كما يلي:
إصدار المجلد |
-------+--------
98 |.2
86 |.1
86 |.6
85 |.6
67 |.2
67 |