Re: usort e & é together
| From: | John Taylor-Johnston | Date: | Mon, 12 Jul 2004 03:09:03 +0000 |
| Subject: | Re: usort e & é together | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-190214@lists.php.net to get a copy of this message | ||
Thanks!
What does var_dump do? (I didn't really understand the manual.)
"Miroslav Hudak (php/ml)" wrote:
> Pardon me for the strtolower line, i've just forgot there... it's 4:30AM
> here in Slovakia... :/
>
> correct listing follows...
>
> <?php
> $authors = array('élen', 'Élen', 'Elison',
> 'ámadeus', 'albert',
> 'alfred', 'amadeus', 'elen');
>
> function usort_callback($a, $b) {
> $a = str_replace(array('á', 'é'), array('a',
> 'e'), strtolower($a));
> $b = str_replace(array('á', 'é'), array('a',
> 'e'), strtolower($b));
> return (strcmp($a, $b));
> }
>
> usort($authors, 'usort_callback');
>
> var_dump($authors);
> ?>
>
> regards,
> m.
>
> John Taylor-Johnston wrote:
>
> >
> > http://compcanlit.usherbrooke.ca/new1/db/index.php?ausenquiry=e
> >
> > http://compcanlit.usherbrooke.ca/new1/db/index.php?ausenquiry=é
> >
> > It still sorts "é" and "e" separately, but without a parse error:
> >
> > $first = array('à', 'é');
> > $second = array('a', 'e');
> >
> > usort($authors, create_function('$a,$b','
> > $a = str_replace($first, $second, $a);
> > $b = str_replace($first, $second, $b);
> > return strcasecmp($a,$b);'));
> >
> > Back to the drawing board? I tried this too:
> >
> > $first = array('à', 'é', 'À', 'É');
> > $second = array('a', 'e', 'A', 'É');
> >
> > Ideas? Thanks,
> > John
> >
> >
> >
> >>Parse error on line 40:
> >>
> >>39> usort($authors, create_function('$a,$b','
> >>40> $a = str_replace(array('é', 'à'),
> >>40> array('e', 'a'), $a);
> >>41> $b = str_replace(array('é', 'à'),
> >>41> array('e', 'a'), $b);
> >>42> return strcasecmp($a,$b);'));
> >
> >
> > <?php
> >
> > if(!$ausenquiry) $ausenquiry ="a";
> >
> > echo "<tr><td>
> > Note: A star, \"*\", indicates that the author uses a pseudonym.<br>Noter
> > : Une étoile, \"*\", indique que cet auteur est connu par un nom de plume.
> >
> > <table border=\"0\" cellspacing=\"0\"
> > cellpadding=\"5\">\n";
> >
> >
> > ######################################################
> > $myconnection = mysql_connect($server,$user,$pass);
> > mysql_select_db($db,$myconnection);
> >
> > $news = mysql_query("select id,AUS from $table");
> >
> > ######################################################
> > $authors = array();
> > $author_list = array();
> >
> > while ($mydata = mysql_fetch_object($news))
> > {
> > $mydata->AUS = str_replace(" ;", ";", $mydata->AUS);
> > $mydata->AUS = str_replace("; ", ";", $mydata->AUS);
> > $tempauthors = explode(";", $mydata->AUS);
> > foreach ($tempauthors as $singleauthor)
> > {
> > if ($singleauthor <> "")
> > {
> > array_push($authors, $singleauthor);
> > $author_list[$singleauthor][] = $mydata->id; // use an associative array...
> > }
> > }
> > }
> >
> > #sort($authors);
> > #usort($authors, create_function('$a,$b','return
> > strcasecmp($a,$b);'));
> >
> > #usort($authors, create_function('$a,$b','
> > # $a = str_replace(array('é', 'à'), array('e',
> > 'a'), $a);
> > # $b = str_replace(array('é', 'à'), array('e',
> > 'a'), $b);
> > # return strcasecmp($a,$b);'));
> >
> > $first = array('à', 'é', 'À', 'É');
> > $second = array('a', 'e', 'A', 'É');
> >
> > usort($authors, create_function('$a,$b','
> > $a = str_replace($first, $second, $a);
> > $b = str_replace($first, $second, $b);
> > return strcasecmp($a,$b);'));
> >
> >
> > foreach (array_count_values ($authors) as $author=>$count)
> > {
> >
> > if((strtolower(substr($author, 0, 1)) == $ausenquiry))
> > {
> >
> > echo "<tr bgcolor=\"#D3DCE3\">";
> > echo "<th align=\"left\" colspan=\"2\"><a
> > href=\"".$SCRIPT_NAME."?searchenquiry=".urlencode($author)."\">".$author."</a>
> > <small>[<--Search Entire Database]</small></th>";
> > echo "<th align=\"right\" width=\"5%\"
> > nowrap>(".$count." ";
> > if($count > 1)
> > {echo "records found/trouvés)";}
> > else{echo "record found/trouvé)";}
> > echo"</th></tr>\n";
> >
> > echo "<tr
> > bgcolor=\"#F5F5F5\"><td> </td>";
> > echo "<td align=\"left\">";
> > $temp = "";
> > foreach ($author_list[$author] as $ausid)
> > {
> > $temp .= "<a target=\"printwindow\"
> > href=\"print.php?id=".urlencode($ausid)."\">".$ausid."</a>,
> > ";
> > }
> > $temp = substr("$temp", 0, -2);
> > echo "$temp</td>";
> > echo "<td> </td>";
> > echo "</tr>\n";
> > }
> > }
> >
> > mysql_close($myconnection);
> > ######################################################
> > echo "</table>
> > </td>
> > </tr>\n";
> >
> > ?>
> >