آموزش جامع و استاندارد کار با آرایهها در PHP (راهنمای گوگل)
مقدمه و استانداردهای گوگل در نگارش آرایهها
آرایهها یکی از بنیادیترین ساختارهای داده در زبان PHP هستند. برای نوشتن کدهای استاندارد، خوانا و کارآمد، باید اصول و استانداردهای کدنویسی (مانند PSR-12 و راهنماهای سبک گوگل) را رعایت کنیم. اولین قدم، استفاده از سینتکس کوتاه آرایهها یعنی [] به جای تابع سنتی array() است.
// روش غیراستاندارد قدیمی
$old_way = array("HTML", "CSS", "JS");
// روش استاندارد و توصیه شده گوگل (PSR-12)
$modern_way = ["HTML", "CSS", "JS"];
انواع آرایهها در PHP
در PHP سه نوع آرایه اصلی داریم:
- آرایههای عددی (Indexed Arrays): آرایههایی با اندیسهای عددی خودکار یا دستی.
- آرایههای انجمنی (Associative Arrays): آرایههایی که از کلیدهای دلخواه (Key-Value) استفاده میکنند.
- آرایههای چندبعدی (Multidimensional Arrays): آرایههایی که درون خود شامل آرایههای دیگری هستند.
// نمونه آرایه انجمنی طبق استاندارد با رعایت فاصلهها
$user = [
'name' => 'Ali',
'role' => 'Developer',
'status' => 'active',
];
توجیه استفاده از توابع آرایه در PHP
گوگل همواره توصیه میکند که برای کارهای تکراری از توابع داخلی (Built-in) بهینهسازی شده خود PHP استفاده کنید تا سرعت اجرای برنامه به حداکثر برسد. در ادامه به معرفی توابع مهم پرداختهایم:
۱. فیلتر کردن آرایه با array_filter
این تابع به شما اجازه میدهد تا عناصر ناخواسته را بر اساس یک شرط خاص حذف کنید.
$numbers = [1, 2, 3, 4, 5, 6];
$evenNumbers = array_filter($numbers, function ($num) {
return $num % 2 === 0;
});
// خروجی: [2, 4, 6]
۲. دگرگونی آرایه با array_map
برای اعمال یک تغییر روی تک تک عناصر آرایه از این تابع استفاده میشود.
$prices = [10, 20, 30];
$discountedPrices = array_map(function ($price) {
return $price * 0.9; // ۱۰ درصد تخفیف
}, $prices);
نکات بهینهسازی حافظه و عملکرد (استانداردهای طلایی گوگل)
وقتی با حجم زیادی از دادهها در آرایه سروکار دارید، نحوه مدیریت حافظه حیاتی است:
- استفاده از Generators به جای آرایههای بزرگ: اگر نیاز به پیمایش یک لیست طولانی دارید، بازگرداندن یک آرایه بزرگ حافظه RAM شما را اشغال میکند. به جای آن از
yieldاستفاده کنید. - استفاده هوشمندانه از in_array: جستجو در آرایههای بسیار بزرگ با
in_arrayکند است. در صورت امکان کلیدها را به عنوان اندیس قرار دهید و ازisset($array[$key])استفاده کنید که سرعت فوقالعاده بالاتری دارد.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید