当前位置:Gxlcms > PHP教程 > 朋友问小弟我一个PHP的有关问题,自己不会,所以跑来问大家!

朋友问小弟我一个PHP的有关问题,自己不会,所以跑来问大家!

时间:2021-07-01 10:21:17 帮助过:20人阅读

朋友问我一个PHP的问题,自己不会,所以跑来问大家!!
由于自己是搞JAVA的,但朋友问我一个PHP问题,内容如下:
PHP code
  1. <!--
  2. Code highlighting produced by Actipro CodeHighlighter (freeware)
  3. http://www.CodeHighlighter.com/
  4. -->
  5. $testArr = array(
  6. 'php' => array(
  7. 'author' => 'allen',
  8. 'price' => 40,
  9. ),
  10. 'java' => array(
  11. 'author' => 'james',
  12. 'price' => 55,
  13. ),
  14. 'mysql' => array(
  15. 'author' => 'gates',
  16. 'price' => 30,
  17. ),
  18. 'html' => array(
  19. 'author' => 'bill',
  20. 'price' => 21,
  21. )
  22. );


请问如何按价格字段进行排序??
借助库函数解决也行!!

------解决方案--------------------
嗯,你是搞JAVA的,价格最贵啊

PHP code
  1. uasort($testArr, create_function('$a,$b', 'return $a["price"]>$b["price"];'));//价格升序,降序改成<
  2. <br><font color="#e78608">------解决方案--------------------</font><br><dl class="code">PHP code<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li></li><li><!--?</li><li> $testArr = array(</li><li> 'php' =--> array(</li><li> 'author' => 'allen',</li><li> 'price' => 40,</li><li> ),</li><li> 'java' => array(</li><li> 'author' => 'james',</li><li> 'price' => 55,</li><li> ),</li><li> 'mysql' => array(</li><li> 'author' => 'gates',</li><li> 'price' => 30,</li><li> ),</li><li> 'html' => array(</li><li> 'author' => 'bill',</li><li> 'price' => 21,</li><li> )</li><li> );</li><li> function my_sort($a, $b){</li><li> return $a['price'] > $b['price'];</li><li> }</li><li> uasort($testArr, "my_sort");</li><li> print_r($testArr);</li><li>?></li><li><br><font color="#e78608">------解决方案--------------------</font><br></li><li><dl class="code">PHP code<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li>foreach ($testArr as $v) {</li><li> $k[] = $v['price'];</li><li>}</li><li>array_multisort($k, SORT_DESC,$testArr);</li><li>print_r(array_slice($testArr,0,3));</li><li><br><font color="#e78608">------解决方案--------------------</font><br>楼上几位共使用了两种类型的三种方法<br>对比如下<dl class="code">PHP code<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li>$testArr = array(</li><li> 'php' => array(</li><li> 'author' => 'allen',</li><li> 'price' => 40,</li><li> ),</li><li> 'java' => array(</li><li> 'author' => 'james',</li><li> 'price' => 55,</li><li> ),</li><li> 'mysql' => array(</li><li> 'author' => 'gates',</li><li> 'price' => 30,</li><li> ),</li><li> 'html' => array(</li><li> 'author' => 'bill',</li><li> 'price' => 21,</li><li> )</li><li>);</li><li>/*** 应用回调函数 ***/</li><li>function func1($ar) {</li><li> uasort($ar, create_function('$a,$b', 'return $a["price"]>$b["price"];'));//价格升序,降序改成<</li><li>}</li><li>/*** 不使用回调函数 ***/</li><li>function func2($ar) {</li><li> foreach ($ar as $key => $row) {</li><li> $price[$key] = $row['price'];</li><li> }</li><li> array_multisort($price, SORT_ASC,$ar);</li><li>}</li><li>/*** 应用 php5.3 闭包 ***/</li><li>function func3($ar) {</li><li> array_multisort(array_map(function($v){return $v['price'];},$ar),$ar);</li><li>}</li><li>check_speed(200, 'func2', $testArr);</li><li>check_speed(200, 'func3', $testArr);</li><li>check_speed(200, 'func1', $testArr); </li></ol></pre></dl></li></ol></pre></dl></li></ol></pre></dl>

人气教程排行