PHP两个关联数组合并函数提高函数效率的解决办法
内容摘要
这篇文章主要为大家详细介绍了PHP两个关联数组合并函数提高函数效率的简单示例,具有一定的参考价值,可以用来参考一下。
文章正文
这篇文章主要为大家详细介绍了PHP两个关联数组合并函数提高函数效率的简单示例,具有一定的参考价值,可以用来参考一下。
在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:使用下面的字节写的函数可以解决从数据库中取出来的数据总是或多或少不符合我们心目中的数据结构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <code> $test1 = Array( 0 => Array( 'id' => 9478137, 'create_time' => 1394760724 ), 1 => Array( 'id' => 9478138, 'create_time' => 1394760725 ), 2 => Array( 'id' => 9478138, 'create_time' => 1394760725 ) ); $test2 = array ( 0 => array ( 'id' => 9478137, 'message' => 'love you' ), 1 => array ( 'id' => 9478138, 'message' => 'miss you' ) ); </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <code> function _mergerArray( $array1 , $array2 , $field1 , $field2 = '' ) { $ret = array (); foreach ( $array1 as $key1 => $value1 ) { foreach ( $array2 as $key2 => $value2 ) { if ( $value1 [ $field1 ] == $value2 [ $field2 ]) { $ret [ $key1 ] = array_merge ( $value1 , $value2 ); } } } return $ret ; } </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <code> $test1 = Array( 0 => Array( 'id' => 9478137, 'create_time' => 1394760724 ), 1 => Array( 'id' => 9478138, 'create_time' => 1394760725 ), 2 => Array( 'id' => 9478138, 'create_time' => 1394760725 ) ); $test2 = array ( 0 => array ( 'id' => 9478137, 'message' => 'love you' ), 1 => array ( 'id' => 9478138, 'message' => 'miss you' ) ); function _mergerArray( $array1 , $array2 , $field1 , $field2 = '' ) { $ret = array (); //使用数组下标的办法 foreach ( $array2 as $key => $value ) { $array3 [ $value [ $field1 ]] = $value ; } foreach ( $array1 as $key => $value ) { $ret [] = array_merge ( $array3 [ $value [ $field1 ]], $value ); } return $ret ; } $ret = _mergerArray( $test1 , $test2 , 'id' , 'id' ); print_r( $ret ); exit ; </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <code> Array ( [0] => Array ( [id] => 9478137 [message] => love you [create_time] => 1394760724 ) [1] => Array ( [id] => 9478138 [message] => miss you [create_time] => 1394760725 ) [2] => Array ( [id] => 9478138 [message] => miss you [create_time] => 1394760725 ) ) </code> |
注:关于PHP两个关联数组合并函数提高函数效率的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释