时间:2021-07-01 10:21:17 帮助过:20人阅读
- <!--
- Code highlighting produced by Actipro CodeHighlighter (freeware)
- http://www.CodeHighlighter.com/
- -->
- $testArr = array(
- 'php' => array(
- 'author' => 'allen',
- 'price' => 40,
- ),
- 'java' => array(
- 'author' => 'james',
- 'price' => 55,
- ),
- 'mysql' => array(
- 'author' => 'gates',
- 'price' => 30,
- ),
- 'html' => array(
- 'author' => 'bill',
- 'price' => 21,
- )
- );
- uasort($testArr, create_function('$a,$b', 'return $a["price"]>$b["price"];'));//价格升序,降序改成<
- <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>