{"id":320,"date":"2021-01-04T11:30:30","date_gmt":"2021-01-04T11:30:30","guid":{"rendered":"https:\/\/blog.gwlin.com\/?p=320"},"modified":"2023-04-01T12:32:42","modified_gmt":"2023-04-01T12:32:42","slug":"PHP \u963f\u62c9\u4f2f\u6570\u5b57\u8f6c\u4e2d\u6587","status":"publish","type":"post","link":"https:\/\/www.gwlin.com\/blog\/posts\/320","title":{"rendered":"PHP \u963f\u62c9\u4f2f\u6570\u5b57\u8f6c\u4e2d\u6587"},"content":{"rendered":"\n<p>\u516c\u53f8\u7684\u9700\u6c42\u91cc\u6709\u4e00\u4e2a\u5c0f\u5730\u65b9\u8981\u5c06\u963f\u62c9\u4f2f\u6570\u5b57\u8f6c\u6210\u4e2d\u6587\uff0c\u8fd9\u91cc\u628a\u6211\u5b9e\u73b0\u7684\u4ee3\u7801\u5206\u4eab\u51fa\u6765\uff0c\u5e0c\u671b\u80fd\u591f\u5e2e\u52a9\u5176\u4ed6\u9700\u8981\u7684\u4eba\uff0c\u6216\u8005\u7ed9\u4e00\u4e9b\u542f\u53d1\u3002\u5e94\u8be5\u652f\u6301\u4efb\u610f\u5927\u7684\u6570\u5b57\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\"  lang=\"php\" class=\"language-php\">\/**\n * \u6570\u5b57\u8f6c\u4e2d\u6587\n *\n * @param int $num\n * @return string\n *\/\nfunction num_to_chinese(int $num){\n\n    $chunk=function(array $nums,int $size):array{\n        $len=count($nums);\n        $head=$len%$size;\n        $chunk=[];\n        $subSize=floor($len\/$size);\n        if($head){\n            $chunk[$subSize]=array_slice($nums,0,$head);\n        }\n\n        for($i=0;$i&lt;$subSize;$i++){\n            $chunk[$subSize-$i-1]=array_slice($nums,$head+$i*$size,$size);\n        }\n        return  $chunk;\n    };\n\n    $chiLoop=[&#039;&#039;,&#039;\u4e07&#039;,&#039;\u4ebf&#039;];\n\n    $loopApply=function(int $loop,array $chiLoop):string{\n        $chiLoopSize=count($chiLoop)-1;\n        $res=[];\n        for($i=$chiLoopSize;$i&gt;0;$i--){\n            $res[]=str_repeat($chiLoop[$i],floor($loop\/$i));\n            $loop=$loop%$i;\n            if(!$loop){\n                break;\n            }\n        }\n        return implode(&#039;&#039;,array_reverse($res));\n    };\n\n    $chiNum = [&#039;\u96f6&#039;, &#039;\u4e00&#039;, &#039;\u4e8c&#039;, &#039;\u4e09&#039;, &#039;\u56db&#039;, &#039;\u4e94&#039;, &#039;\u516d&#039;, &#039;\u4e03&#039;, &#039;\u516b&#039;, &#039;\u4e5d&#039;];\n    $chiUni = [&#039;&#039;,&#039;\u5341&#039;, &#039;\u767e&#039;,&#039;\u5343&#039;];\n\n    $looper=function($num,$suffix)use($chiNum,$chiUni){\n        $len=count($num);\n        $res=[];\n        foreach ($num as $key=&gt;$value){\n            $value=(int)$value;\n            if($value){\n                $zero=&#039;&#039;;\n                if($key &amp;&amp; !$num[$key-1]){\n                    $zero=$chiNum[0];\n                }\n                $res[]=$zero.$chiNum[$value].$chiUni[$len-$key-1];\n            }\n        }\n        $res[]=$suffix;\n        if($suffix &amp;&amp; end($num)===&#039;0&#039;){\n            $res[]=$chiNum[0];\n        }\n\n        return implode(&#039;&#039;,$res);\n    };\n\n    if(!$num){\n        return $chiNum[0];\n    }\n\n    $numArr=str_split($num);\n    $numChunk=$chunk($numArr,4);\n    $res=&#039;&#039;;\n    foreach ($numChunk as $loop=&gt;$chunk){\n        $res.=$looper($chunk,$loopApply($loop,$chiLoop));\n    }\n\n    if(mb_substr($res,0,2,&#039;utf8&#039;)===&#039;\u4e00\u5341&#039;){\n        return mb_substr($res,1,null,&#039;utf8&#039;);\n    }\n\n    return $res;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u516c\u53f8\u7684\u9700\u6c42\u91cc\u6709\u4e00\u4e2a\u5c0f\u5730\u65b9\u8981\u5c06\u963f\u62c9\u4f2f\u6570\u5b57\u8f6c\u6210\u4e2d\u6587\uff0c\u8fd9\u91cc\u628a\u6211\u5b9e\u73b0\u7684\u4ee3\u7801\u5206\u4eab\u51fa\u6765\uff0c\u5e0c\u671b\u80fd\u591f\u5e2e\u52a9\u5176\u4ed6\u9700\u8981\u7684\u4eba\uff0c\u6216\u8005\u7ed9\u4e00\u4e9b\u542f\u53d1\u3002\u5e94\u8be5\u652f\u6301\u4efb\u610f\u5927\u7684\u6570\u5b57\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[179],"tags":[186],"class_list":["post-320","post","type-post","status-publish","format-standard","hentry","category-notes","tag-php"],"_links":{"self":[{"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/posts\/320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/comments?post=320"}],"version-history":[{"count":0,"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/posts\/320\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/media?parent=320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/categories?post=320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gwlin.com\/blog\/wp-json\/wp\/v2\/tags?post=320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}