寻求最优的计算方法
寻求最优的计算数组方法,实在搞不出来了
我有两个数组分别是:
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$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)
首先查找$arr2的pos在$arr1中的所有数组的pos中的顺序位置,如果顺序位置一致则按照id倒序获取位置
如上面的代码则应该获取的结果为:$arr2位于$arr1的
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->array( 'id'=>4, 'pos'=>4 ),
之上
------解决方案--------------------
系统特点: 商品多级分类检索、搜索,支持同一商品多重分类,自由设置显示式样 自由设置会员类型,自由设置权限项目,自由分配每种会员类型和每个会员的权限 灵活的商品定价,最多12级价格自由分配给各种会员类型或会员,也可针对单会员单商品特殊定价 强大的会员管理、帐户管理、订单管理功能和一系列帐务查询统计功能 灵活的会员积分系统,自由设置每个积分事件的积分计算方法 灵活的网站内容发布、管理系统,每个栏目可
- PHP code
<?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);?><br><font color="#e78608">------解决方案--------------------</font><br>当- PHP code
$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);<div class="clear">
</div>









