חיפוש מפתחות באמצעות 'array_search'
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 18 מתוך 68.
בעוד ש־in_array() מציינת לך אם ערך קיים במערך, לפעמים צריך לדעת בדיוק היכן הערך הזה נמצא. הפונקציה array_search() מוצאת ערך מסוים במערך ומחזירה את המפתח או את האינדקס המתאימים לו.
כך זה עובד:
<?php
$players = ["Alice", "Bob", "Charlie", "Diana"];
$position = array_search("Charlie", $players);
echo $position; // פלט: 2
?>הפונקציה מקבלת שני פרמטרים: הערך שאחריו מחפשים והמערך שבו מחפשים. כשהערך נמצא, array_search() מחזירה את המפתח (במערכים ממוספרים, זהו המיקום המספרי שמתחיל ב-0).
עם זאת, יש הבחנה חשובה במה שמוחזר. אם הערך נמצא, מקבלים את המפתח. אם הערך לא נמצא, הפונקציה מחזירה false:
<?php
$scores = [95, 87, 92, 78];
$found = array_search(92, $scores); // מחזיר: 2
$notFound = array_search(100, $scores); // מחזיר: false
?>הפונקציה הזאת שימושית במיוחד כשצריך לקבוע את המיקום או הדירוג של פריט, למשל למצוא את הדירוג של שחקן בטבלת הדירוג או לאתר את האינדקס של רכיב מסוים להמשך עיבוד.
אתגר
קלתקבלו שתי קלטים: מערך של שמות מוצרים בפורמט JSON ושם של מוצר לחיפוש. קראו את שני הקלטים, המירו את מחרוזת ה-JSON למערך, השתמשו ב-array_search() כדי למצוא את מיקום המוצר במערך, והדפיסו את התוצאה. אם המוצר נמצא, הדפיסו את מיקום האינדקס שלו. אם המוצר לא נמצא, הדפיסו "Product not found".
פורמט הקלט: שתי שורות - בשורה הראשונה מופיע מערך JSON (לדוגמה: ["laptop","mouse","keyboard","monitor"]), ובשורה השנייה מופיע שם המוצר לחיפוש
הפלט הצפוי: מיקום האינדקס המספרי של המוצר (החל מ-0), או הטקסט "Product not found" אם המוצר לא קיים במערך
נסו בעצמכם
<?php
// קראו את מערך ה-JSON מהקלט
$jsonInput = fgets(STDIN);
$products = (array)json_decode($jsonInput, true);
// קראו את שם המוצר שיש לחפש
$searchProduct = trim(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה
// השתמשו ב-array_search() כדי למצוא את מיקום המוצר
// הציגו את התוצאה
echo $result;
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין