التعامل مع المصفوفات في PHP: دوال هتوفر عليك ساعات من الشغل
أكيد مريت باللحظة دي، لما تكون بتعمل مشروع وتلاقي قدامك مصفوفة (Array) عملاقة فيها بيانات كتير، وتبدأ تكتب حلقات تكرار (Loops) زي foreach أو for عشان تعدل قيم أو تطلع داتا معينة. غالباً الكود بيطول معاك، بيبقى صعب تقراه، ومع الوقت بتلاقي نفسك تايه في وسط الـ Loops المتداخلة. طيب إيه رأيك لو قلتلك إن لغة PHP موفرة ليك مجموعة دوال قوية جداً بتخليك تعمل كل ده في سطر واحد بس؟
Table of contents [Show]
ليه محتاج تستخدم الدوال الجاهزة للمصفوفات؟
التعامل مع المصفوفات في لغة برمجة بي اتش بي (PHP) مش مجرد تخزين بيانات، ده فن. الدوال اللي هنتكلم عنها النهاردة هي جزء من البرمجة الوظيفية (Functional Programming)، ودي بتخلي الكود بتاعك: Clean (نضيف)، Readable (سهل القراءة)، والأهم من ده كله، Maintainable (سهل التعديل عليه مستقبلاً). بدل ما تكتب 10 سطور عشان تعمل فلترة، هتكتب سطر واحد، وده بيقلل احتمالية وجود أخطاء (Bugs).
1. دالة array_map: تحويل البيانات بذكاء
دالة array_map هي رفيقتك وقت ما تحب تطبق عملية معينة على كل عنصر جوه المصفوفة وترجع مصفوفة جديدة بنفس الحجم. تخيل عندك مصفوفة أسعار وعايز تضيف عليها ضريبة أو تحولها لعملة تانية.
$prices = [100, 200, 300];
$withTax = array_map(function($price) {
return $price * 1.14; // إضافة ضريبة 14%
}, $prices);
// النتيجة: [114, 228, 342]
2. دالة array_filter: تصفية البيانات (Filtering)
لما يكون عندك مصفوفة كبيرة وعايز بس العناصر اللي بتحقق شرط معين (مثلاً عايز المستخدمين اللي عمرهم أكبر من 18 سنة)، هنا بيجي دور array_filter. الدالة دي بتاخد المصفوفة وبتمررها على "Callback" فانكشن، وأي عنصر بيرجع "true" بيفضل معانا، والباقي بيتحذف.
$ages = [15, 22, 18, 30, 12];
$adults = array_filter($ages, function($age) {
return $age >= 18;
});
// النتيجة: [22, 18, 30]
3. دالة array_reduce: تقليل المصفوفة لقيمة واحدة
دي بقى "الوحش" بتاعهم. دالة array_reduce بتستخدمها لما تحب تحول المصفوفة كلها لقيمة واحدة (Single Value)، زي مثلاً حساب مجموع (Sum) كل الأرقام اللي في مصفوفة، أو دمج نصوص معينة.
$numbers = [10, 20, 30];
$total = array_reduce($numbers, function($carry, $item) {
return $carry + $item;
}, 0);
// النتيجة: 60
إزاي تحترف التعامل مع المصفوفات في بي اتش بي؟
نصيحة من أخوك، ما تحاولش تحفظ الدوال دي صم، جربهم بنفسك. ابدأ ادخل على الـ Documentation الرسمية لـ PHP وشوف الأمثلة، وجرب تعمل Combine بينهم (مثلاً تعمل Filter وبعدين Map). لما بتبدأ تفكر بطريقة "Functional"، مستوى كودك بيتحسن جداً، وبتحس إنك بتكتب كود احترافي (Professional Code) مش مجرد سكريبتات بتشتغل وخلاص.
البرمجة مش بس إنك تكتب كود يشتغل، البرمجة إنك تكتب كود "شيك" وسهل لأي حد يجي يشتغل وراك يفهمه. ابدأ طبق الدوال دي في مشروعك الجاي، وهتلاقي فرق كبير جداً في وقتك ومجهودك.