מיון ופעולות על מערכים בשפת PHP

מיון מערכים ופעולות עליהם הוא דבר נחוץ מאוד בתיכנות בשפת PHP, חשוב להכיר את הפעולות והמיונים במיוחד לאחר שעברנו על מערכים בשפת PHP במאמר הקודם.

כרגע נרחיב על פעולות דיי שימושיות בעבודה עם מערכים, נתחיל מפעולות מיון ולבסוף אגע קצת בפעולות אחרות דיי שימושיות.

  • sort() – מסדר וממיין את המספרים בסדר עולה או את המחרוזות על פי ה-א”ב.
  • rsort() – ההפך מ sort, מסדר את המספרים בסדר יורד, או את המחרוזות על פי ה-א”ב ההפוך.

כפי שלמדנו בפרק על המערכים, ניתן להגדיר מערך ע”פ מפתח (Key) וערך (Value) מה שנקרא מערך אסוציאטיבי, נזכיר את התחביר:

$age = array("Ben"=>"15", "Dani"=>"32", "Roni"=>"63");
  • asort() – מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר עולה ומחרוזות על פי ה-א”ב.
  • ksort() – כמו asort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר עולה ומחרוזות על פי ה-א”ב.
  • arsort() – מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר יורד ומחרוזות על פי ה-א”ב ההפוך.
  • krsort() – כמו arsort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר יורד ומחרוזות על פי ה-א”ב ההפוך.
  • count() – סופרת את מספר האיברים במערך ומחזירה את התוצאה, הספירה מתחילה מ 1 ולא מ 0. אין להתבלבל בין מספר האיברים שמתחיל מ 1 לבין מספר האינדקסים שמתחיל מ 0.
  • array_key_exists() – למערכים אסוציאטיביים, פעולה זו מחזירה אמת במידה והמפתח (Key) קיים במערך, אחרת שקר.
  • in_array() – למערכים אסוציאטיביים ולכאלה שלא, הפעולה מחזירה אמת במידה והערך קיים במערך, אחרת שקר.

פונקציית sort

מסדר וממיין את המספרים בסדר עולה או את המחרוזות על פי ה-א”ב.

<?php
$names = array("Ben" , "Rotem" , "Tami" , "Avi");
sort($names)

// על פונקציה count שכתובה נלמד בהמשך העמוד
for($currentCell = 0; $currentCell < count($names); $currentCell++) {
echo $names[$currentCell] . "<br />";
}

// מה שיודפס:
Avi
Ben
Rotem
Tami

?>

פונקציית rsort

ההפך מ sort, מסדר את המספרים בסדר יורד, או את המחרוזות על פי ה-א”ב ההפוך.

<?php
$names = array("Ben" , "Rotem" , "Tami" , "Avi");
rsort($names)

// על פונקציה count שכתובה נלמד בהמשך העמוד
for($currentCell = 0; $currentCell < count($names); $currentCell++) {
echo $names[$currentCell] . "<br />";
}

// מה שיודפס:
Tami
Rotem
Ben
Avi

?>

פונקציית asort

מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר עולה ומחרוזות על פי ה-א”ב.

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);

// על פונקציה foreach שכתובה נלמד בהמשך
foreach ($fruits as $key => $val) {
    echo $key . " = " . $val . "<br />";
}

// מה שיודפס:
c = apple
b = banana
d = lemon
a = orange
?>

פונקציית ksort

כמו asort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Ket), מספרים בסדר עולה ומחרוזות על פי ה-א”ב.

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
ksort($fruits);

// על פונקציה foreach שכתובה נלמד בהמשך
foreach ($fruits as $key => $val) {
    echo $key . " = " . $val . "<br />";
}

// מה שיודפס:
a = orange
b = banana
c = apple
d = lemon
?>

פונקציית arsort

מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר יורד ומחרוזות על פי ה-א”ב ההפוך.

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);

// על פונקציה foreach שכתובה נלמד בהמשך
foreach ($fruits as $key => $val) {
    echo $key . " = " . $val . "<br />";
}

// מה שיודפס:
a = orange
d = lemon
b = banana
c = apple
?>

פונקציית krsort

כמו arsort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר יורד ומחרוזות על פי ה-א”ב ההפוך.

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
krsort($fruits);

// על פונקציה foreach שכתובה נלמד בהמשך
foreach ($fruits as $key => $val) {
    echo $key . " = " . $val . "<br />";
}

// מה שיודפס:
d = lemon
c = apple
b = banana
a = orange
?>

פונקציית count

סופרת את מספר האיברים במערך ומחזירה את התוצאה.

<?php 

$names = array("David" , "Moshe" , "Yoshi" , "Abi"); 
echo count($names); // 4  ( הפונקציה סופרת את מספר האיברים/תאים שיש במערך )

?>

פונקציית array_key_exists

למערכים אסוציאטיביים, פעולה זו מחזירה אמת במידה והמפתח (Key) קיים במערך, אחרת שקר.

<?php
$search_array = array('first' => null, 'second' => 3);

array_key_exists('first', $search_array); // returns true
?>

פונקציית in_array

למערכים אסוציאטיביים ולכאלה שלא, הפעולה מחזירה אמת במידה והערך קיים במערך, אחרת שקר.

<?php
$os = array("Mac", "NT", "Irix", "Linux");
echo in_array("Irix", $os) // returns true
echo in_array("mVc", $os) // returns false
?>

כעת לאחר שהכרנו את הפעולות העיקריות לעבודה עם מערכים, ניתן להמשיך הלאה למאמר הבא שבו נרחיב על מחרוזות בשפת PHP.