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

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

Shillo 22-06-09 17:00

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

array ("val1","val2","val3")
אחרי שאני אעביר אותו בפונקציה, התוצאה תהיה כזו:
קוד:

array( "val1" => array("val2" => array("val3" => array())) )
חשבתי על רקורסיה או עבודה עם מצביעים, אשמח גם לרעיונות.

Shillo 22-06-09 17:32

אחד תותח בסוף עזר לי. :)
הנה הקוד:
קוד:

function ArrToDeep( $array )
  {
          if ( !is_array($array) ) return $array ;
          $new_array = array() ;
          $str = "\$new_array" ;
          foreach ( $array as $val ) $str .= "['$val']" ;
          $str .= " = array();" ;
          eval( $str ) ;
          return $new_array ;
  }

  $array = array( "haim", "shilo", "yosi" ) ;

  $deep = ArrToDeep( $array ) ;
  print_r( $deep ) ;


vadimg88 22-06-09 18:43

שימוש בarray_map עם callback היה עושה את זה הרבה יותר קצר ובהרבה יותר מהיר.

Shillo 22-06-09 22:56

ציטוט:

נכתב במקור על ידי vadimg88 (פרסם 723260)
שימוש בarray_map עם callback היה עושה את זה הרבה יותר קצר ובהרבה יותר מהיר.

בלי רקורסיה?

vadimg88 23-06-09 07:18

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


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

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