תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

פונקציות PHP לטיפול במערכים

מחבר:
בתאריך:

PHP מציע שפע של פונקציות מובנות המטפלות במערכים . במדריך זה תכירו מספר פונקציות מועילות מסוג זה.

 

הפונקציה count

הפונקציה count מחזירה את מספר הפריטים במערך נתון.

לדוגמה:

$cars = array('Talbot', 'Sussita', 'Tata');
echo count($cars);

הדוגמה תדפיס למסך 3, כמספר הפריטים במערך.

 

פונקציות לחיפוש במערכים

הפונקציה in_array מחפשת פריט במערך ומחזירה TRUE, אם הפריט נמצא, או FALSE, אם הפריט לא קיים.

$cars = array('Talbot', 'Sussita', 'Tata');
if(in_array('Sussita', $cars)){
  echo 'Yes';
} else {
  echo 'No';
}

 

התוצאה: Yes

 

הפונקציה array_search מחפשת פריט במערך ומחזירה את מיקום הפריט, או FALSE.

לדוגמה:

$cars = array('Talbot', 'Sussita', 'Tata');
echo array_search('Sussita', $cars);

הדוגמה תדפיס 1 למסך, מפני שהמערך המבוקש הוא הפריט השני במערך, ומחשבים מתחילים לספור מ-0.

 

הפונקציה הבאה משתמשת בפונקציה array_search כדי להחזיר No במידה ואין התאמה, או את מיקום הפריט במקרה של מציאת התאמה:

function improved_array_search($look_for, $inside_array){
  if(array_search($look_for, $inside_array) === FALSE){
    return 'No';
  } else {
    return array_search($look_for, $inside_array);
  }
}

כשנריץ את הפונקציה נקבל את התוצאות בירוק:

echo improved_array_search('Sussita', $cars); // 1
echo improved_array_search('Kangoo', $cars); // No

 

פונקציות להוספת פריטים למערך

הפונקציה array_push מוסיף פריט או מספר פריטים לסופו של המערך.

$cars = array('Talbot', 'Sussita', 'Tata');
array_push($cars, 'Delta', 'Volvo');
var_dump($cars);

והתוצאה:

array (size=5)
 0 => string 'Talbot' (length=6)
 1 => string 'Sussita' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)
 4 => string 'Volvo' (length=5)

 

הפונקציה array_pop מסיר את הפריט האחרון במערך, ומחזיר את הפריט שהוסר מהמערך.

לדוגמה:

echo array_pop($cars); // Volvo
var_dump($cars);

והתוצאה:

array (size=4)
 0 => string 'Talbot' (length=6)
 1 => string 'Sussita' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)

 

הפונקציה array_shift מסיר את הפריט הראשון מהמערך, ומחזיר את הפריט שהוסר.

echo array_shift($cars); // Talbot var_dump($cars);

והתוצאה:

array (size=3)
 0 => string 'Sussita' (length=7)
 1 => string 'Tata' (length=4)
 2 => string 'Delta' (length=5)

 

הפונקציה array_unshift מוסיף פריט ראשון למערך.

array_unshift($cars, 'KIA');
var_dump($cars);

והתוצאה:

array (size=4)
 0 => string 'KIA' (length=3)
 1 => string 'Sussita' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)

 

פונקציות שיוצרות מערך חדש ממערך קיים

פונקציות אילו לא משנות את המערך הקיים, אלא יוצרות מערך חדש ממערך קיים.

array_slice שולף פריטים ממערך קיים בהתבסס על מיקומם.

$a = array_slice($cars,0,1);
var_dump($a);

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

והתוצאה בהתאם:

array (size=1)
 0 => string 'KIA' (length=3)

 

הפריט האחרון במערך מוגדר כ1- , ובהתאם אם רוצים לשלוף 2 פריטים החל מהעמדה השלישית מסוף המערך, זה ייראה כך:

// last array item is : -1
$b = array_slice($cars,-3,2);
var_dump($b);

והתוצאה:

array (size=2)
 0 => string 'Sussita' (length=7)
 1 => string 'Tata' (length=4)

 

אבל, צריך לשים לב שהמערך המקורי לא השתנה בכלל. נדגים את הנקודה הזו:

var_dump($cars);

והתוצאה:

array (size=4)
 0 => string 'KIA' (length=3)
 1 => string 'Sussita' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)

 

הפונקציה array_splice מסירה פריטים ממערך ומחליפה אותם. בדוגמה זו, נחליף את שני הפריטים הראשונים במערךcars בפריטים ממערך new_cars

$new_cars = array('Peugeot', 'Renault');
// array_splice(array_name, start_position, number_items, added_items)
array_splice($cars,0,2,$new_cars);
var_dump($cars);

והתוצאה:

array (size=4)
 0 => string 'Peugeot' (length=7)
 1 => string 'Renault' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)

 

פונקציות שפועלות על כל פריט במערך

הפונקציות שמשתייכות לקטגוריה זו, מבצעות פונקציה על כל פריט ופריט במערך.

array_map מבצע פונקציה על כל פריט ופריט במערך, ומחזיר מערך עם הפריטים ששונו. בדוגמה זו, נריץ את הפונקציה strtolower על כל פריט במערךcars$, ונקבל חזרה מערך חדש שבו כל האותיות קטנות.

$lower_case_cars = array_map('strtolower', $cars);
var_dump($lower_case_cars);

כך נראה המערך שיצרנו $lower_case_cars:

array (size=4)
 0 => string 'peugeot' (length=7)
 1 => string 'renault' (length=7)
 2 => string 'tata' (length=4)
 3 => string 'delta' (length=5)

שימו לב, המערך $cars לא ישתנה בכלל כשנריץ את הפונקציה.

 

array_walk מבצע פונקציה על כל פריט ופריט במערך, אך אינו מחזיר מערך. בדוגמה זו, נריץ את הפונקציה שכתבנו, ששמה hello_to_car , על פריטי המערך.

function hello_to_car($item){
   echo "Beep, " . $item . "!<br />";
}

array_walk($cars, 'hello_to_car');

והתוצאה:

Beep, Peugeot!
Beep, Renault!
Beep, Tata!
Beep, Delta!

 

פונקציות שפועלות על מערכים אסוציאטיביים

הפונקציות בקטגוריה זו , פועלות באופן מיוחד על מערכים אסוציאטיביים, כלומר, מערכים שיש להם מפתחות (keys) וערכים (values).

array_keys יוצר מערך חדש נוסף שכל הפריטים בו מקורם בערכים מהמערך המקורי.

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

$national_cars = array('Korea' => 'KIA', 'Israel' =>
'Sussita', 'India' => 'Tata', 'Romania' =>
'Delta');
$models  = array_values($national_cars);
var_dump($models);

והתוצאה:

array (size=4)
 0 => string 'KIA' (length=3)
 1 => string 'Sussita' (length=7)
 2 => string 'Tata' (length=4)
 3 => string 'Delta' (length=5)

 

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

לדוגמה:

$nations = array_keys($national_cars);
var_dump($nations);

והתוצאה:

array (size=4)
 0 => string 'Korea' (length=5)
 1 => string 'Israel' (length=6)
 2 => string 'India' (length=5)
 3 => string 'Romania' (length=7)

 

צריך לשים לב, ש-array_keys ו-array_values אינם פוגעים במערך המקורי.

 

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

לדוגמה, אם תריצו את הקוד הבא, יודפסו למסך הערכים המצוינים בירוק:

extract($national_cars);
echo $Israel;// Sussita
echo $Korea;// KIA
echo $India;// Tata

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

 

כל מדריכי ה-PHP

 

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

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

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

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

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

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

דג למים הוא כמו ציפור ל...?

 

תמונת המגיב

מאיר בתאריך: 23.05.2022

אני מאודמאוד נהנה מכל המדריכים שלכם התחלתי בינואר השנה לעבור על המדריכים שלכם ואני עכשיו התחלתי עבודה ב75 ש"ח לשעה ולא היה לי שום ידע מוקדם בנושא הערה קטנה בהסבר על array_keys התחלף הקוד עם array_values ושוב פעם תודה