How do i sort an associative array and split into two div's based on a value?

Discussion in 'PHP' started by 123GoToAndPlay, Mar 28, 2011.

  1. #1
    Hi,

    I like to sort an associative array into two div's based on a value.

    Here's what i have now:
    
     function showDivs($array) {
            /*
             * sort en group by
             */
            $luxury = false;
            $no_luxury = false;
            $return = '';
            while (list($key, $value) = each($array)) {
                //$return .= $value["MinimumRate"].'<br/>';
                if ($value["MinimumRate"] < 500) {
                    if ($no_luxury === false) {
                        $return .= '<div id="no_luxury" >';
                    }
                    $return .= $value['Description'] . " : " . $value["MinimumRate"] . "<br />";
    
                    if ($no_luxury === false) {
                        $return .='</div>';
                        $no_luxury = true;
                    }
                }
                
                if ($value["MinimumRate"] > 500) {
                    if ($luxury === false) {
                        $return .='<div id="luxury" >';
                    }
                    $return .= $value['Description'] . " : " . $value["MinimumRate"] . "<br />";
    
                    if ($luxury === false) {
                        $return .='</div>';
                        $luxury = true;
                    } 
                } 
                
               
            }
            return $return;
        }
    
    echo showDivs($splitThisArray);
    
    PHP:
    But this didn't work?
     
    123GoToAndPlay, Mar 28, 2011 IP
  2. Alex Roxon

    Alex Roxon Active Member

    Messages:
    424
    Likes Received:
    11
    Best Answers:
    7
    Trophy Points:
    80
    #2
    You could try something like this;

    function showDivs( $array ) {
        $arr = array( 'luxury' => array(), 'no_luxury' => array() );
        foreach( $array as $key => $val ) {
            $key = ( $val['MinimumRate'] <= 500 ) ? 'no_luxury' : 'luxury';
            $arr[ $key ][] = $val;
        }
    
        $return = '';
        foreach( $arr as $id => $vals ) {
            $return .= "<div id='$id'>";
            foreach( $vals as $details ) {
                $return .= $details['Description'] . ' : ' . $details['MinimumRate'] . '<br />';
            }
            $return .= "</div>";
        }
    
        return $return;
    }
    PHP:
     
    Alex Roxon, Mar 28, 2011 IP