<?php |
/** |
* 逆序二维数组插入一元素 |
* |
* @author WadeYu |
* @date 2012-05-30 |
*/ |
$aSorted = array ( |
array (1, 100), |
array (2, 90), |
array (3, 80), |
array (4, 70), |
array (5, 60), |
array (6, 50), |
array (7, 40), |
array (8, 40), |
array (9, 40), |
array (10, 20), |
); |
$aInsert = array (11, 40); |
$maxCmpIdx = 0; |
$cnt = 0; |
$maxCnt = 10; |
foreach ( $aSorted as $idx => $arr ){ |
if ( $arr [0] == $aInsert [0]){ |
$maxCmpIdx = $idx ; |
} |
$cnt ++; |
} |
if ( ! $maxCmpIdx ){ |
$maxCmpIdx = $cnt ++; |
} |
$aSorted [ $maxCmpIdx ] = $aInsert ; |
for ( $i = $maxCmpIdx ; $i > 0; $i --){ |
if ( $aSorted [ $i ][1] > $aSorted [ $i -1][1]){ |
$aTmp = $aSorted [ $i -1]; |
$aSorted [ $i -1] = $aSorted [ $i ]; |
$aSorted [ $i ] = $aTmp ; |
continue ; |
} |
break ; |
} |
for ( $i = $cnt ; $i > $maxCnt ; $i --){ |
unset( $aSorted [ $i -1]); |
} |
print_r( $aSorted ); |