הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה פשוטה ב PHP (https://hosts.co.il/forums/showthread.php?t=29342)

O-B 21-08-06 13:12

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

Array (
[0] => 452
[1] => 412
[2] => 783
[3] => 54
[4] => 51
[5] => 654
[6] => 745
[7] => 458
[8] => 954
[9] => 510
[10] => 111
[11] => 1262
[12] => 1423
[13] => 14
[14] => 15
)
עכשיו אני רוצה את הערך הקודם לערך 954
ואת הערך הבא לו

כלומר שיהיה לי משתנה שיקבל את הערך הבא שהוא 510
ומשתנה אחר שיקבל את הערך הקודם שהוא 485

ofek_golan 21-08-06 13:16

למה לך להכניס משתנה של מערך למשתנה אחר המערך הוא קובץ של משתנים שכותבים אותם אחרת
ערך 510 שייך למשתנה של:
PHP קוד:

$array["9"


Level-Serv 21-08-06 13:16

אתה יכול לעבור על המערך בלולאה, ולשמור את הkey של הערך 954 (ע"י שאלת if).
ואחר כך פשוט לקבל את i+1 וi-1

בניה 21-08-06 13:29

ב"ה

אתה יכול לתחמן קצת.
יש פונקציה בPHP שיוצרת מערך שהערכים הופכים להיות ה keys וה keys לערכים.
ואז פשוט תגש למערך החדש עם הערך שאתה מחפש בתור ה key.
(זה יכול להיות בעייתי אם יש אותם ערכים כמה פעמים במערך.
http://il.php.net/manual/en/function.array-flip.php

O-B 21-08-06 13:39

ofek_golan - מה שאתה מציע לא טוב כי אני לא יודע את הערך שמצביע..
Level-Serv - ואם יש לי מערך של נגיד 100 ערכים או משהו גדול יותר זה לא יפריע?..
בניה - נשמע מסובך מידי.

עריכה: הצלחתי בדרך שבניה הציע אבל היא יעילה?

RS324 21-08-06 19:35

היא הרבה יותר יעילה מלעשות FOREACH אבל היא יכולה להיות בעייתית

Level-Serv 21-08-06 19:52

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

RS324 21-08-06 20:21

ציטוט:

נכתב במקור על ידי Level-Serv
בעיקרון אתה יכול לעשות תנאי שאם הוא מצא את הkey הוא שובר את הלולאה, אני לא בטוח עד כמה זה נכון לעשות את זה.


ואם יש לי מערך עם 1000 איברים והאיבר שאני צריך הוא 997 לצורך הדוגמא ?


עריכה :
-------
לאחר בדיקה קצרה אני ממליץ לך להשתמש בפונקציה array_search()
היא מחזירה את ה KEY של ערך מסויים בתוך המערך


כל הזמנים הם GMT +2. הזמן כעת הוא 08:13.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ