Perhaps it's more a UTF8 issue that is going wrong for me.
At first strtr() was not giving me the results I wanted, so I started
tinkering. This is what I came up with... Still no satisfactory
results.
I think character support is rather lacking in php, or maybe I just
don't have a clue?
Gerry
function xlate_remove_accents( $string, $german=false, $output_array=false )
{
// Single letters
$single_fr = explode(" ", "À Á Â Ã Ä Å Ą Ă Ç Ć Č
Ď Đ Ð È É Ê Ë Ę Ě Ğ Ì Í Î Ï İ Ł
Ľ Ĺ Ñ Ń Ň Ò Ó Ô Õ Ö Ø Ő Ŕ Ř Š
Ś Ş Ť Ţ Ù Ú Û Ü Ů Ű Ý Ž Ź Ż à
á â ã ä å ą ă ç ć č ď đ è é ê ë ę
ě ğ ì í î ï ı ł ľ ĺ ñ ń ň ð ò
ó ô õ ö ø ő ŕ ř ś š ş ť ţ ù ú û ü
ů ű ý ÿ ž ź ż ™ (r)");
$single_to = explode(" ", "A A A A A A A A C C C D D D E E E E E E G
I I I I I L L L N N N O O O O O O O R R S S S T T U U U U U U Y Z Z Z
a a a a a a a a c c c d d e e e e e e g i i i i i l l l n n n o o o o
o o o o r r s s s t t u u u u u u y y z z z (tm) (r)");
$single = array();
for ($i=0; $i<count($single_fr); $i++)
{
$single[$single_fr[$i]] = $single_to[$i];
}
// Ligatures
$ligatures = array("Æ"=>"Ae", "æ"=>"ae", "Œ"=>"Oe", "œ"=>"oe",
"ß"=>"ss");
// German umlauts
$umlauts = array("Ä"=>"Ae", "ä"=>"ae", "Ö"=>"Oe", "ö"=>"oe",
"Ü"=>"Ue", "ü"=>"ue");
// Replace
$replacements = array_merge($single, $ligatures);
if ($german)
$replacements = array_merge($replacements, $umlauts);
if ( $output_array )
return( $replacements );
// $string = strtr($string, $replacements);
$n = '';
$s = str_split($string);
$l = strlen($string);
for ( $x = 0 ; $x < $l ; $x++ )
{
$c = $s[$x];
$newc = $c ;
foreach ( $replacements as $key => $val )
{
if ( $key == $c )
$newc = $val ;
}
$n .= $newc ;
}
return $n ;
}
On 2/26/07, Gerry D <[EMAIL PROTECTED]> wrote:
I was hoping for a function or something so I would not have to loop
through the array. Then again, I imagine search_array() does that
anyway...
Thanks for the quick reply!
Gerry
On 2/26/07, Hap-Hang Yu <[EMAIL PROTECTED]> wrote:
> Try:
>
> $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
> $search = 'apple';
>
> foreach($fruit as $key => $val) {
> if ($val == $search) {
> echo "$search found: array key is $key, value is $val";
> }
> }
>
> 2007/2/27, Gerry D <[EMAIL PROTECTED]>:
> > I have a question on how to retrieve the value that corresponds to a
> > key in an array.
> >
> > $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
> >
> > $key = array_search($c, $fruit);
> > if ( $key === FALSE )
> > $n = $c;
> > else
> > {
> > $n = $fruit[$key]; // how to get the value???
> > }
> >
> > the array_search works ok, but how do I get the value?
> >
> > all I get back is 'a' or 'b', not 'apple' or 'banana'...
> >
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php