Re: Thinking out loud - a continuation...
| From: | Robert Cummings | Date: | Sat, 24 Mar 2012 16:44:49 +0000 |
| Subject: | Re: Thinking out loud - a continuation... | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-317250@lists.php.net to get a copy of this message | ||
On 12-03-24 08:41 AM, Jay Blanchard wrote:
On Mar 23, 2012, at 11:24 PM, Robert Cummings wrote:The crux of it is:On 12-03-23 05:41 PM, Jay Blanchard wrote:[-- DELETED GARBAGE --] :)I just realized... I've been stuck in a thinking rut. I latched onto one solution that works well in some case but didn't fully examine the nuances of your own scenario. Given the way you are creating your hierarchy you will ultimately retrieve all rows. As such the following simple solution will do what you need: <?php$company = 1;$query = "SELECT DISTINCT " ." * " ."FROM " ." tiers " ."WHERE " ." company = {$company} ";$root = array(); if( $db->query( $query ) ) { while( ($row = $db->fetchRow()) ) { $focus =&$root; for( $i = 1; $i<= 14; $i++ ) { $name = $row['tier'.$i];if( !isset( $focus[$name] ) ) { $focus[$name] = array(); }$focus =&$focus[$name]; } } }$json = JSON_encode( $root );?>
$focus = &$focus[$name];because it facilitates moving deeper and deeper into the array. Cheers, Rob. -- E-Mail Disclaimer: Information contained in this message and any attached documents is considered confidential and legally protected. This message is intended solely for the addressee(s). Disclosure, copying, and distribution are prohibited unless authorized.