to make this function work you have to add following two lines above this function.
mb_language("Ja");
mb_internal_encoding("utf-8");
mb_convert_kana($_POST['something_value'], "rna");(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_convert_kana — Преобразовывает одну кодировку "kana" в другую: "zen-kaku", "han-kaku" и другие
   Функция преобразовывает кодировку значения с типом string,
   которое принимает параметр string, из "han-kaku" в "zen-kaku".
   Функция полезна только для японского языка.
  
stringИсходная строка (string).
modeПараметры преобразования.
Режим устанавливается комбинацией следующих параметров.
| Настройка | Описание | 
|---|---|
r | 
           Преобразование "zen-kaku" букв в "han-kaku" | 
R | 
           Преобразование "han-kaku" букв в "zen-kaku" | 
n | 
           Преобразование "zen-kaku" чисел в "han-kaku" | 
N | 
           Преобразование "han-kaku" чисел в "zen-kaku" | 
a | 
           Преобразование "zen-kaku" букв и чисел в "han-kaku" | 
A | 
           Преобразование "han-kaku" букв и чисел в "zen-kaku" (Для настроек "a", "A" символы берутся из диапазона U+0021 — U+007E, исключая U+0022, U+0027, U+005C, U+007E) | 
s | 
           Преобразование "zen-kaku" пробела в "han-kaku" (U+3000 → U+0020) | 
S | 
           Преобразование "han-kaku" пробела в "zen-kaku" (U+0020 → U+3000) | 
k | 
           Преобразование "zen-kaku kata-kana" в "han-kaku kata-kana" | 
K | 
           Преобразование "han-kaku kata-kana" в "zen-kaku kata-kana" | 
h | 
           Преобразование "zen-kaku hira-gana" в "han-kaku kata-kana" | 
H | 
           Преобразование "han-kaku kata-kana" в "zen-kaku hira-gana" | 
c | 
           Преобразование "zen-kaku kata-kana" в "zen-kaku hira-gana" | 
C | 
           Преобразование "zen-kaku hira-gana" в "zen-kaku kata-kana" | 
V | 
           Свёртывает фонемы и преобразовывает их в символ. Указывается вместе с "K", "H" | 
encoding
 Параметр encoding указывает кодировку символов.
 При пропуске параметра или передаче значения null
 функция интерпретирует символы в предустановленной кодировке модуля.
Функция возвращает преобразованную строку (string).
   Функция выбрасывает ошибку ValueError,
   если в параметр mode передали недопустимую комбинацию режимов
   наподобие "sS".
  
| Версия | Описание | 
|---|---|
| 8.2.0 | 
        Функция теперь выбрасывает ошибку ValueError
        при недопустимой комбинации режимов в параметре mode.
        | 
     
| 8.0.0 | 
  Параметр encoding теперь принимает значение null.
  | 
Пример #1 Пример преобразования кодировки функцией mb_convert_kana()
<?php
/* Преобразование символов "han-kaku" "kata-kana" в "zen-kaku" "hira-gana" */
echo mb_convert_kana('ヤマダ ハナコ', "HV") . "\n";
/* Преобразование "han-kaku" "kata-kana" в "zen-kaku" "kata-kana"
   и "zen-kaku" буквенно-цифровых символов в "han-kaku" */
echo mb_convert_kana('コウザバンゴウ 0123456', "KVa") . "\n";
?>Результат выполнения приведённого примера:
やまだ はなこ コウザバンゴウ 0123456
to make this function work you have to add following two lines above this function.
mb_language("Ja");
mb_internal_encoding("utf-8");
mb_convert_kana($_POST['something_value'], "rna");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);
?>It seems that mb_convert_kana() doesn't convert symbols such as ' (single quoatation). It affected my program when I insert data into database. 
So, I've found 2 ways to solve this.
1) Use Javascript to convert those non-supported symbols before sending query string to your php page.
2) Use php function, str_replace $str, to replace those non-supported symbols. For example, $str = str_replace("'", "?", $str);
where the first single quot is half-width(han kaku), and the second one is full-width(zen kaku).