I am querying all orders from a WordPress database that uses the WooCommerce Bookings plugin. I want to display Upcoming Bookings and there is a potential to have every hour within 2015 to be booked; which means that I might query over 8700 orders.

I'm new to PHP and did most of this following code myself. I'm not sure if there is a more efficient way of writing this code. I don't want my code to hinder site performance.

Here is the code:

    <?php 
						
						function objectToArray($d) {
							if (is_object($d)) {
								$d = get_object_vars($d);
							}
					 
							if (is_array($d)) {
								return array_map(__FUNCTION__, $d);
							}
							else {
								return $d;
							}
						}
	
						$results = $wpdb->get_results("SELECT tzYeb_2_posts.* FROM tzYeb_2_posts INNER JOIN tzYeb_2_term_relationships ON (tzYeb_2_posts.ID = tzYeb_2_term_relationships.object_id) WHERE 1=1 AND ( tzYeb_2_term_relationships.term_taxonomy_id IN (11) ) AND tzYeb_2_posts.post_type = 'shop_order' AND ((tzYeb_2_posts.post_status = 'publish')) GROUP BY tzYeb_2_posts.ID ORDER BY tzYeb_2_posts.post_date DESC");
						
						$time_array = array();
						$fname_array = array();
						$church_array = array();
						$city_array = array();
						$state_array = array();
						
						$new_array = array();
						
						foreach( $results as $result ) {
							$order_items = $wpdb->get_results("
								SELECT	order_item_id, order_item_name, order_item_type
								FROM		{$wpdb->prefix}woocommerce_order_items
								WHERE	order_id = " . $result->ID . "
								AND		order_item_type IN ('line_item')
								ORDER BY	order_item_id
							");
							
							foreach( $order_items as $order_item ) {
								$item_meta = $wpdb->get_results("
									SELECT	*
									FROM		{$wpdb->prefix}woocommerce_order_itemmeta
									WHERE	order_item_id = " . $order_item->order_item_id . "
								");
								
								$meta_array = objectToArray( $item_meta );
								
								$timestamp = "";
								$date = "";
								$time = "";
								$fname = "";
								$church = "";
								$city = "";
								$state = "";
								
								foreach( $meta_array as $data ) {
										
										if( $data['meta_key'] == 'Booking Date' ) 
											$date = $data['meta_value'];
										if( $data['meta_key'] == 'Booking Time' )
											$time = $data['meta_value'];
										if( $data['meta_key'] == 'First Name - First Name' )
											$fname = $data['meta_value'];
										if( $data['meta_key'] == 'Church Information - Church Name' )
											$church = $data['meta_value'];
										if( $data['meta_key'] == 'Church Information - City' )
											$city = $data['meta_value'];
										if( $data['meta_key'] == 'Church Information - State' )
											$state = $data['meta_value'];
									
									
								}
								
								$timestamp = strtotime( $time . ' ' . $date );
								
								array_push( $time_array, $timestamp );
								array_push( $fname_array, $fname );
								array_push( $church_array, $church );
								array_push( $city_array, $city );
								array_push( $state_array, $state );
								
							}
							
						}
						
						$arrays = array( $fname_array, $church_array, $city_array, $state_array );
						
						foreach( $time_array as $index => $key ) {
							$t = array();
							foreach( $arrays as $array ) {
								$t[] = $array[$index];
							}
							$up[$key] = $t;
						}
						
						ksort( $up );
						
						$i = 0;
						foreach( $up as $tsort => $tval ) { 
							if( $tsort > strtotime('now') ) {
							?>
							
							<div class="wc-upcoming-booking">
								<div class="wc-upcoming-time">
									<span class="upcoming-hour"><?php echo date( 'g:i A', $tsort ); ?></span>
									<span class="upcoming-date"><?php echo date( 'F j', $tsort ); ?></span>
								</div>
								<div class="wc-upcoming-details">
									<?php if( $tval[0] ) { echo $tval[0]; } ?>
									<?php if( $tval[1] ) { echo ', ' . $tval[1]; } ?>
									<?php if( $tval[2] ) { echo ', ' . $tval[2]; } ?>
									<?php if( $tval[3] ) { echo ', ' . $tval[3]; } ?>
								</div>
							</div>
							
						<?php
							
							$i++;
							if( $i >= 10 ) 
								break;
							}
						}
						
					 ?>

Please advise. Thank you.