Re: assist with SORT array

From: Date: Tue, 10 Sep 2002 08:55:07 +0000
Subject: Re: assist with SORT array
Groups: php.db 
Request: Send a blank email to php-db+get-21658@lists.php.net to get a copy of this message
Bartosz was correct in saying that you should use your query to sort, rather than sorting array. And the array is actually sorted, although it keeps its index. See the manual reference on arrays to see how they work. To iterate over sorted arrays, use the foreach() construct. Anyway, the better way to do it (using only 1 sql query), would be using the following code. $rest_IDs = implode("','", $restaurants); $sql = "SELECT name FROM restaurants WHERE id IN ('$rest_IDs') ORDER BY name"; $result = mysql_query($sql) or die($sql . mysql_error()); while($row=mysql_fetch_object($result)) {
         $rest_array[] = ucwords(stripslashes($row->name));
} And its sorted!!! If you want to check what values an array holds, use a combination of header("Content-Type: text/plain"); and print_r($rest_array); Have fun! Adam
I have a head scratcher.. prob just a glitch on my side, but somehow I am confused with the results. I have a php script pulling from a mysql database for id/names which is getting choices through a check box form. All of that works just fine, but I wanted to display the results sorted by title. My snippet of code is: // $restaurants = array() of ids back from form
        for($i=0;$i<sizeof($restaurants);$i++) {
            $rest_id = $restaurants[$i];
            $sql="select name from restaurants where id=$rest_id";
            $result=mysql_query($sql) or die($sql . mysql_error());
            while($row=mysql_fetch_object($result)) {
                $rest_name .= ucwords(stripslashes($row->name)) . ";";
            }
        }
        $rest_array=explode(";",$rest_name);
        $rest_sort=sort($rest_array);		// <-- the problem line
        die("checking: $rest_name<br><br> size = ".sizeof($rest_array) . " sorted: " . sizeof($rest_sort));
the results come back with 6 in the $rest_array but only 1 in the $rest_sort array! How is that?? checking: Hi-Ho Tavern;Village Inn;Speak Easy;Duane's House Of Pizza;Atomic Coffee; size = 6 sorted: 1 What I am trying to accomplish is an array('Atomic Coffee', 'Duane's House Of Pizza','Hi-Ho Tavern','Speak Easy','Village Inn') Help??


« previous php.db (#21658) next »