On Tue, 28 Jun 2005, Wee Keat wrote:
Hi All, I'm working on an aircraft booking system and it has multiple origin/destination data, concatenated into a single line: /***** BEGIN DATA *****/ Melbourne, AU, 21-07-2005 14:00:00|Perth, AU, 21-07-2005 18:00:00|Perth, AU, 25-07-2005 14:00:00|Melbourne, AU, 25-07-2005 18:00:00 /***** END DATA *****/ As you can see, each origin/destination is separated by a pipe '|', and then, each origin/destination data has its location, country and datetime of departure/arrival, separated by comma ','. I'm splitting them up into array of location, country and datetime using the following: /***** BEGIN CODE *****/ $itenary = explode('|', $booking->booking_flight_details); $size = count($itenary); for($i=0; $i < $size; $i++) { list($path[$i]['location'], $path[$i]['country'], $path[$i]['datetime']) = explode(',', $itenary[$i]); } /***** END CODE *****/ *Question*: Is the above the code an effective way to do it? Or is there a better/faster way?
I suppose it depends on how many records you're going to have to split up... here's another way, but I don't know if it's faster -- I'll let you time it -- and it's certainly not as readable...
$bits = split("[|,]", $booking->booking_flight_details); $size = count($itenary); for ( $i = 0; $i < $size; $i += 3 ) { $path[$i]['location'] = $bits[$i]; $path[$i]['country'] = $bits[$i + 1]; $path[$i]['datetime'] = $bits[$i + 2]; } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php