> array (
>          20040310, Title, Author
>          20041115, Title, Author
>          20040513, Title, Author
>       )
> 
> where each array element is 1 line from the csv. When I go to print it
> out, Im going to explode each by , and then print it out the way I like.
> 
> BUT, I want to sort them all by those first 8 digits, which happen to be
> the date. Any way to sort an array by the first x characters in its
> string?
> 
> This would save a lot on processor time, otherwise Im going to have to
> pull an array of those characters, sort it, and then run some matching
> scheme against the CSV data to print it in the order I like - which would
> be HUGELY processor intensive.

I think sort should do it for you

$array = array("20040310, Title, Author",
                "20041115, Title, Author",
                "20040513, Title, Author");
sort($array);
reset($array);
while (list($key, $val) = each($array)) {
   echo "array[" . $key . "] = " . $val . "<br />";
}

but, if you wanted to just make sure it was the first entry in the CSV try usort

function cmp($a, $b)
{       

   $first = explode(',', $a);   
   $second = explode(',', $b);  
        
   if ($first == $second) {
       return 0;
   }
   return ($first < $second) ? -1 : 1;
}


$array = array("20040310, Title, Author",
                "20041115, Title, Author",
                "20040513, Title, Author");
usort($array, "cmp");

while (list($key, $value) = each($array)) {
   echo "array[" . $key . "] = " . $value . "<br />";
}

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to