日期:2014-05-17 浏览次数:20560 次
$arr1=array(
array(
'id'=>1,
'pos'=>1
),
array(
'id'=>2,
'pos'=>2
),
array(
'id'=>3,
'pos'=>3
),
array(
'id'=>4,
'pos'=>4
),
array(
'id'=>5,
'pos'=>5
),
array(
'id'=>6,
'pos'=>6
),
)
$arr2=array(
'id'=>7,
'pos'=>4
)
array(
'id'=>4,
'pos'=>4
),
<?php
$arr1=array(
array(
'id'=>1,
'pos'=>1
),
array(
'id'=>2,
'pos'=>2
),
array(
'id'=>3,
'pos'=>3
),
array(
'id'=>4,
'pos'=>4
),
array(
'id'=>5,
'pos'=>5
),
array(
'id'=>6,
'pos'=>6
),
);
$arr2=array(
'id'=>7,
'pos'=>4
);
function array_insert($arr1, $arr2)
{
$index = 1;
$insert = false;
foreach($arr1 as $v)
{
if ($v['pos'] == $arr2['pos']) {
if ($v['id'] < $arr2['id']) {
array_splice($arr1, $index - 1, 0, array($arr2));
break;
} else {
$insert = true;
}
} else if ($insert) {
break;
}
$index ++;
}
if ($insert) {
array_splice($arr1, $index - 1, 0, array($arr2));
}
return $arr1;
}
$arr1 = array_insert($arr1, $arr2);
print_r($arr1);
$arr2=array(
'id'=>3,
'pos'=>4
);
$arr1 = array_insert($arr1, $arr2);
print_r($arr1);
$arr2=array(
'id'=>5,
'pos'=>6
);
$arr1 = array_insert($arr1, $arr2);
print_r($arr1);
?>
------解决方案--------------------
当
$arr1=array(
array(
'id'=>1,
'pos'=>1
),
array(
'id'=>2,
'pos'=>2
),
array(
'id'=>3,
'pos'=>3
),
array(
'id'=>4,
'pos'=>5
),
array(
'id'=>5,
'pos'=>5
),
array(
'id'=>6,
'pos'=>6
),
);
$arr2=array(
'id'=>7,
'pos'=>4
);