echo''< br> XXX< br>''; foreach($ content $ r){ var_export($ r); echo''< br>''; } echo''< br> YYY< br>''; uksort($ contents,''compare''); foreach($ content $ r){ var_export($ r); echo''< br>''; } 再一次,usort,uasort或uksort的输出总是: XXX array(''c' '=> ''TIR'',''d''=> ''轮胎'',''p''=> 100,) 数组(''c''=>'''油''''''''=>''油'''''''''=> 10 ,) 数组(''c''=>''SPK'',''d''=>''火花塞'',''''=> 4 ,) YYY array(''c''=>''SPK'',''d''=>''Spark插头'',''p''=> 4,) 数组(''c''=>''油''',''''=>''油'',''p''=> 10,) 数组(''c''=>'''TIR'',''d''=>''轮胎' ',''p''=> 100,) 有人可以解释为什么没有一个案例会通过 排序关联数组第二个 ;柱"以及如何找到能够播放3种类型功能之间的差异的示例??? TIA PaulI''m having some trouble understanding what is happening with some arraysorting functions. In all cases, my compare function is:function compare($x, $y){if ( $x[1] == $y[1] )return 0;else if ( $x[1] < $y[1] )return -1;elsereturn 1;}I started with this:$contents = array( array( ''TIR'', ''Tires'', 100 ),array( ''OIL'', ''Oil'', 10 ),array( ''SPK'', ''Spark Plugs'', 4 ) );echo ''<br>XXX<br>'';foreach($contents as $r) {var_export($r);echo ''<br>'';}echo ''<br>YYY<br>'';uasort($contents, ''compare'');foreach($contents as $r) {var_export($r);echo ''<br>'';}And the output, whether I use usort or uasort is always:XXXarray ( 0 => ''TIR'', 1 => ''Tires'', 2 => 100, )array ( 0 => ''OIL'', 1 => ''Oil'', 2 => 10, )array ( 0 => ''SPK'', 1 => ''Spark Plugs'', 2 => 4, )YYYarray ( 0 => ''OIL'', 1 => ''Oil'', 2 => 10, )array ( 0 => ''SPK'', 1 => ''Spark Plugs'', 2 => 4, )array ( 0 => ''TIR'', 1 => ''Tires'', 2 => 100, )But if I use uksort I get:XXXarray ( 0 => ''TIR'', 1 => ''Tires'', 2 => 100, )array ( 0 => ''OIL'', 1 => ''Oil'', 2 => 10, )array ( 0 => ''SPK'', 1 => ''Spark Plugs'', 2 => 4, )YYYarray ( 0 => ''SPK'', 1 => ''Spark Plugs'', 2 => 4, )array ( 0 => ''OIL'', 1 => ''Oil'', 2 => 10, )array ( 0 => ''TIR'', 1 => ''Tires'', 2 => 100, )But I cannot see why I get this reversal of order???I then tried:$contents = array( array( c=>''TIR'', d=>''Tires'', p=>100 ),array( c=>''OIL'', d=>''Oil'', p=>10 ),array( c=>''SPK'', d=>''Spark Plugs'', p=>4 ) );echo ''<br>XXX<br>'';foreach($contents as $r) {var_export($r);echo ''<br>'';}echo ''<br>YYY<br>'';uksort($contents, ''compare'');foreach($contents as $r) {var_export($r);echo ''<br>'';}And this time the output, whether I use usort, uasort or uksort is always:XXXarray ( ''c'' => ''TIR'', ''d'' => ''Tires'', ''p'' => 100, )array ( ''c'' => ''OIL'', ''d'' => ''Oil'', ''p'' => 10, )array ( ''c'' => ''SPK'', ''d'' => ''Spark Plugs'', ''p'' => 4, )YYYarray ( ''c'' => ''SPK'', ''d'' => ''Spark Plugs'', ''p'' => 4, )array ( ''c'' => ''OIL'', ''d'' => ''Oil'', ''p'' => 10, )array ( ''c'' => ''TIR'', ''d'' => ''Tires'', ''p'' => 100, )Finally I tried:$contents = array( array( c=>''TIR'', d=>''Tires'', p=>100 ),array( c=>''OIL'', a=>''Oil'', p=>10 ),array( c=>''SPK'', z=>''Spark Plugs'', p=>4 ) );echo ''<br>XXX<br>'';foreach($contents as $r) {var_export($r);echo ''<br>'';}echo ''<br>YYY<br>'';uksort($contents, ''compare'');foreach($contents as $r) {var_export($r);echo ''<br>'';}And once again, the outputs with usort, uasort or uksort is always:XXXarray ( ''c'' => ''TIR'', ''d'' => ''Tires'', ''p'' => 100, )array ( ''c'' => ''OIL'', ''d'' => ''Oil'', ''p'' => 10, )array ( ''c'' => ''SPK'', ''d'' => ''Spark Plugs'', ''p'' => 4, )YYYarray ( ''c'' => ''SPK'', ''d'' => ''Spark Plugs'', ''p'' => 4, )array ( ''c'' => ''OIL'', ''d'' => ''Oil'', ''p'' => 10, )array ( ''c'' => ''TIR'', ''d'' => ''Tires'', ''p'' => 100, )Can someone explain why none of the cases will sort the associative array bythe second "column" and how I can find examples that will sow thedifferences between the 3 sort functions???TIAPaul推荐答案 x, y) { if(y){if ( x [1] == 这篇关于排序数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!