ホームページ >バックエンド開発 >PHPチュートリアル >最適な計算方法を模索中
最適な計算方法を探しています
配列の最適な計算方法を探していますが、まったくわかりません
配列が 2 つあります:
<!-- 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 )
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> array( 'id'=>4, 'pos'=>4 ),
<?php $arr1=配列( 配列( 'id'=>1、 'pos'=>1 )、 配列( 'id'=>2、 'pos'=>2 )、 配列( 'id'=>3、 'pos'=>3 )、 配列( 'id'=>4、 'pos'=>4 )、 配列( 'id'=>5、 'pos'=>5 )、 配列( 'id'=>6、 'pos'=>6 )、 ); $arr2=配列( 'id'=>7、 'pos'=>4 ); 関数 array_insert($arr1, $arr2) { $インデックス = 1; $挿入 = false; foreach($arr1 として $v) { if ($v['pos'] == $arr2['pos']) { if ($v['id'] < $arr2['id']) { array_splice($arr1, $index - 1, 0, array($arr2)); 壊す; } それ以外 { $挿入 = true; } else if ($insert) { 壊す; } $インデックス++; } if ($insert) { array_splice($arr1, $index - 1, 0, array($arr2)); } $arr1 を返します。 } $arr1 = array_insert($arr1, $arr2); print_r($arr1); $arr2=配列( 'id'=>3、 'pos'=>4 ); $arr1 = array_insert($arr1, $arr2); print_r($arr1); $arr2=配列( 'id'=>5、 'pos'=>6 ); $arr1 = array_insert($arr1, $arr2); print_r($arr1); ?> <br><font color="#e78608">------解決策------------------</font><br>
の場合 $arr1=配列( 配列( 'id'=>1、 'pos'=>1 )、 配列( 'id'=>2、 'pos'=>2 )、 配列( 'id'=>3、 'pos'=>3 )、 配列( 'id'=>4、 'pos'=>5 )、 配列( 'id'=>5、 'pos'=>5 )、 配列( 'id'=>6、 'pos'=>6 )、 ); $arr2=配列( 'id'=>7、 'pos'=>4 );<div class="clear"></div>