note 51496 added to function.mb-convert-kana
| From: | d at safetypub dot org | Date: | Fri, 01 Apr 2005 11:00:19 +0000 |
| Subject: | note 51496 added to function.mb-convert-kana | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-87313@lists.php.net to get a copy of this message | ||
I didn't find Japanese sorting function.
(mb_sort_kana or something)
Only SJIS encoding treats hankaku kata kana,
I can't post here copy & paste version script.
I'm sorry...
You will replace comments with appropriate japanese string,
and write exception handlings between lines as you like.
<?php
mb_internal_encoding("SJIS");
$moji = /*"aiueo...wawon -?.," <- serialized hankaku kata kana 50 on hyou goes here*/;
$moji .= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxwz0123456789";
for($i = 0; isset($moji[$i]); $i++){
$pittan[$moji[$i]] = $i;
}
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return iter(mb_convert_kana($a, "askh") ,mb_convert_kana($b, "askh"), 0);
}
function iter($a, $b, $i){
global $pittan;
if(!isset($a[$i]) || !isset($b[$i])){
return (isset($b[$i]))? -1 : 1;
}
if ($pittan[$a[$i]] == $pittan[$b[$i]]){
return iter($a, $b, ++$i);
}
return (($pittan[$a[$i]]) < ($pittan[$b[$i]]))? -1 : 1;
}
echo "<pre>";
$arr = array(/*some japanese array here*/);
usort($arr, "cmp");
var_dump($arr);
?>
----
Manual Page -- http://www.php.net/manual/en/function.mb-convert-kana.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+51496
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+51496&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+51496&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+51496&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+51496&report=yes&reason=useless
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+51496&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+51496&report=yes
Search -- http://master.php.net/manage/user-notes.php