Array Functions1

✅ 1. count() – لحساب عدد العناصر
$colors = ["أحمر", "أخضر", "أزرق"];
echo count($colors); // 3
PHP

الفائدة: معرفة حجم المصفوفة مفيد جدًا قبل التكرار باستخدام for.

✅ 10. is_array() – التحقق هل القيمة مصفوفة
$test = ["PHP", "JS"];
var_dump(is_array($test)); // true

$name = "ياسين";
var_dump(is_array($name)); // false
PHP

الفائدة: مفيدة للتحقق قبل استخدام دوال المصفوفات.

✅ 11. array_key_exists() – التحقق من وجود مفتاح
$user = ["name" => "ياسين", "age" => 25];
if (array_key_exists("name", $user)) {
    echo "الاسم موجود";
}
PHP

⚠️ محذور: المفتاح يمكن أن يكون موجودًا ولكن القيمة null، لذلك الفرق بينها وبين isset().

✅ 12. in_array() – التحقق من وجود قيمة
$colors = ["أحمر", "أخضر", "أزرق"];
if (in_array("أخضر", $colors)) {
    echo "اللون موجود";
}
PHP

⚠️ محذور: هذه الدالة تبحث بالقيم وليس المفاتيح.

✅ 13. array_keys() و array_values()
$user = ["name" => "ياسين", "age" => 25];

print_r(array_keys($user));    // ["name", "age"]
print_r(array_values($user));  // ["ياسين", 25]
PHP

الفائدة: تفيد عند الحاجة للوصول لقائمة المفاتيح أو القيم فقط.

✅ 14. array_merge() – دمج مصفوفتين
$a = ["PHP", "HTML"];
$b = ["CSS", "JS"];
$all = array_merge($a, $b);
print_r($all); // ["PHP", "HTML", "CSS", "JS"]
PHP

⚠️ محذور: إذا كانت المفاتيح ترابطية مكررة، سيتم استبدالها وليس إضافتها.

✅ 15. array_push() / array_pop()
array_push() – إضافة عناصر للنهاية:
$fruits = ["تفاح", "موز"];
array_push($fruits, "عنب", "كيوي");
PHP
array_pop() – إزالة العنصر الأخير:
array_pop($fruits); // يزيل "كيوي"
PHP

ملاحظة: array_push() تعادل $arr[] =.

✅ 16. array_shift() / array_unshift()
array_shift() – يزيل أول عنصر:
$names = ["ياسين", "سارة", "كريم"];
array_shift($names); // يحذف "ياسين"
PHP
array_unshift() – يضيف في البداية:
array_unshift($names, "نور");
PHP

✅ مفيدة في التعامل مع البيانات كسِجل زمني (Stack / Queue).

✅ 17. array_slice() – قص جزء من المصفوفة
$colors = ["أحمر", "أخضر", "أزرق", "أصفر"];
$sliced = array_slice($colors, 1, 2); // من العنصر الثاني، عدد 2
print_r($sliced); // ["أخضر", "أزرق"]
PHP

ملاحظة: لا تعدل المصفوفة الأصلية.

✅ 18. array_splice() – حذف/استبدال جزء
$colors = ["أحمر", "أخضر", "أزرق", "أصفر"];
array_splice($colors, 1, 2, ["أسود", "رمادي"]);
print_r($colors); // ["أحمر", "أسود", "رمادي", "أصفر"]
PHP

ميزة: تعدل المصفوفة الأصلية، ويمكن استخدامها للحذف والاستبدال.

✅ 19. array_reverse() – عكس ترتيب العناصر
$nums = [1, 2, 3];
$reversed = array_reverse($nums);
print_r($reversed); // [3, 2, 1]
PHP
✅ 20. array_unique() – إزالة العناصر المكررة
$values = ["PHP", "PHP", "HTML", "CSS", "CSS"];
$unique = array_unique($values);
print_r($unique);
PHP

⚠️ محذور: المفاتيح الأصلية لا يتم إعادة ترتيبها، وقد تحتاج array_values() بعدها.

✅ 21. array_search() – إيجاد موقع (المفتاح) لقيمة
$names = ["أحمد", "ياسين", "نور"];
$key = array_search("ياسين", $names);
echo $key; // 1
PHP

⚠️ محذور: إذا لم تُوجد القيمة، سترجع false (وليس 0).

✅ 22. array_replace() – استبدال القيم بمصفوفة أخرى
$arr1 = ["a" => "أحمر", "b" => "أخضر"];
$arr2 = ["a" => "أسود"];
$result = array_replace($arr1, $arr2);
print_r($result); // ["a" => "أسود", "b" => "أخضر"]
PHP

ميزة: تستخدم عند الرغبة بتحديث بيانات مصفوفة ببيانات جديدة بشكل آمن.

✅ 23. sort() – ترتيب تصاعدي حسب القيمة (يفقد المفاتيح)
$numbers = [5, 2, 9, 1];
sort($numbers);
print_r($numbers); // [1, 2, 5, 9]
PHP

⚠️ محذور: عند استخدام sort()، يتم إعادة ترتيب المفاتيح بشكل تلقائي (تُفقد المفاتيح الأصلية).

✅ 24. rsort() – ترتيب تنازلي حسب القيمة (يفقد المفاتيح)
$numbers = [5, 2, 9, 1];
rsort($numbers);
print_r($numbers); // [9, 5, 2, 1]
PHP

✅ مفيد للترتيب العكسي السريع بدون الحاجة لتكرار array_reverse(sort(...)).

✅ 25. asort() – ترتيب تصاعدي مع الحفاظ على المفاتيح
$scores = ["ahmed" => 70, "yasin" => 90, "sara" => 80];
asort($scores);
print_r($scores);
/*
[
  "ahmed" => 70,
  "sara" => 80,
  "yasin" => 90
]
*/
PHP

الفائدة: مناسب عند وجود أسماء أو معرفات مرتبطة بالقيم، وتريد الحفاظ عليها.

✅ 26. ksort() – ترتيب تصاعدي حسب المفاتيح
$person = ["c" => "كريم", "a" => "أحمد", "b" => "باسل"];
ksort($person);
print_r($person);
/*
[
  "a" => "أحمد",
  "b" => "باسل",
  "c" => "كريم"
]
*/
PHP

✅ مفيد إذا كانت المفاتيح عبارة عن رموز أو أحرف وتحتاج لترتيبها أبجديًا.

✅ 27. arsort() / krsort() – ترتيب تنازلي للقيم أو المفاتيح مع الحفاظ عليها
arsort() – تنازلي حسب القيمة
$grades = ["Ali" => 60, "Zein" => 90, "Lina" => 75];
arsort($grades);
print_r($grades);
PHP
krsort() – تنازلي حسب المفاتيح
$grades = ["Ali" => 60, "Zein" => 90, "Lina" => 75];
krsort($grades);
print_r($grades);
PHP

ملاحظة: ممتازة لتنظيم البيانات عند عرض تقارير أو ترتيب نتائج.

✅ 28. shuffle() – ترتيب عشوائي (يفقد المفاتيح)
$names = ["أحمد", "ليلى", "ياسين", "سارة"];
shuffle($names);
print_r($names); // كل مرة ترتيب مختلف
PHP

⚠️ محذور: يفقد المفاتيح، يستخدم فقط مع المصفوفات ذات مفاتيح رقمية.

✅ 29. array_rand() – اختيار عنصر أو أكثر عشوائيًا
$colors = ["أحمر", "أخضر", "أزرق", "أصفر"];
$randomKey = array_rand($colors);
echo $colors[$randomKey]; // لون عشوائي
PHP
لاختيار أكثر من عنصر:
$keys = array_rand($colors, 2);
echo $colors[$keys[0]] . " و " . $colors[$keys[1]];
PHP

الفائدة: تُستخدم كثيرًا في الألعاب أو اختيار جوائز أو بيانات اختبار عشوائية.