Heim > Backend-Entwicklung > PHP-Tutorial > 数组的排序有关问题

数组的排序有关问题

WBOY
Freigeben: 2016-06-13 12:04:12
Original
943 Leute haben es durchsucht

数组的排序问题!
$a=array('张三'=>'肆佰贰拾叁','李四'=>'壹佰玖拾','王五'=>'柒佰','孙六'=>'捌仟叁佰陆拾','陈七'=>'肆万伍仟贰佰');

将这个数组按汉子代表的数字大小进行排序,不改变索引,最后输出的结果应为如下格式:

array('李四'=>'壹佰玖拾','张三'=>'肆佰贰拾叁','王五'=>'柒佰','孙六'=>'捌仟叁佰陆拾','陈七'=>'肆万伍仟贰佰');

代码尽量简单 我是新手,最后排序用数组排序函数
------解决方案--------------------

$a = array(<br />  '张三' => '肆佰贰拾叁',<br />  '李四' => '壹佰玖拾',<br />  '王五' => '柒佰',<br />  '孙六' => '捌仟叁佰陆拾',<br />  '陈七' => '肆万伍仟贰佰'<br />);<br /><br />$t = array_map('cton', $a);<br />array_multisort($t, $a);<br />print_r($a);<br /><br />function cton($s) {<br />  $dw = array('拾' => 10, '佰' => 100, '仟' => 1000, '万' => 10000);<br />  $digital = array('零' => 0, '壹' => 1, '贰' => 2, '叁' => 3, '肆' => 4,<br />                   '伍' => 5, '陆' => 6, '柒' => 7, '捌' => 8, '玖' => 9);<br />  $ar = preg_split('/(' . join('<br><font color='#FF8000'>------解决方案--------------------</font><br>', array_keys($dw)) . ')/',<br />                   $s, -0, PREG_SPLIT_NO_EMPTY <br><font color='#FF8000'>------解决方案--------------------</font><br> PREG_SPLIT_DELIM_CAPTURE);<br />  for($i=0; $i<count($ar); $i+=2) {<br />    $res[] = $digital[$ar[$i]] * (isset($ar[$i+1]) ? $dw[$ar[$i+1]] : 1);<br />  }<br />  return array_sum($res);<br />}
Nach dem Login kopieren
Array<br />(<br />    [李四] => 壹佰玖拾<br />    [张三] => 肆佰贰拾叁<br />    [王五] => 柒佰<br />    [孙六] => 捌仟叁佰陆拾<br />    [陈七] => 肆万伍仟贰佰<br />)<br /><br />
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage