php 中文数字大小排序

jiahui| 阅读:1931 发表时间:2018-03-15 16:31:08 php
 /*
     * 输入特定含中文的二维数组
     * 返回 最大的中文对应的数字,及二维数组的下标
     * */
    private function getMaxChineseNumber($obj=[])
    {
        $arr = [
            '一' => '1',
            '二' => '2',
            '三' => '3',
            '四' => '4',
            '五' => '5',
            '六' => '6',
            '七' => '7',
            '八' => '8',
            '九' => '9',
            '十' => '10',
        ];
        $arr_all = [];
        $result =0;
        foreach ($obj as $k => $v) {
            $len = strlen($v['Chinese_number']);//获取中文数字长度utf-8三个字节
            switch ($len) {
                case 1*3:
                    $result = $arr[$v['Chinese_number']];
                    break;
                case 2*3:
                    $a = substr($v['Chinese_number'], 0*3, 1*3);
                    $b = substr($v['Chinese_number'], 1*3, 1*3);
                    $result = (string)$arr[$a]%10 . (string)$arr[$b]%10;
                    break;
                case 3*3:
                    $a = substr($v['Chinese_number'], 0*3, 1*3);
                    $b = substr($v['Chinese_number'], 2*3, 1*3);
                    $result = $arr[$a] . $arr[$b];
                    break;
                default :
                    break;
            }
            $arr_all[] = $result;
            $arr2[$result] = $k;
        }
        $max = max($arr_all);
        return [$max, $arr2[$max]];
    }