我想将相同的概念应用于
关联数组数组
而不是SQL。下面是用户及其地址的示例,下面是调用
array_join(array $array1, array $array2, string $key1, string $key2, string $new_key)
用户
Array
(
[0] => Array
(
[id] => 1
[name] => John
)
[1] => Array
(
[id] => 2
[name] => Foo
)
[2] => Array
(
[id] => 3
[name] => Baz
)
)
地址:
Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[street] => 53 Van Ness St
)
[1] => Array
(
[id] => 2
[user_id] => 1
[street] => 21 Overland St
)
[2] => Array
(
[id] => 3
[user_id] => 1
[street] => 101 Mountfort St
)
[3] => Array
(
[id] => 4
[user_id] => 3
[street] => 27 Sidney St
)
)
(总之,用户1有3个地址,用户3有一个地址)
所需输出
Array
(
[0] => Array
(
[id] => 1
[name] => John
[addresses] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[street] => 53 Van Ness St
)
[1] => Array
(
[id] => 2
[user_id] => 1
[street] => 21 Overland St
)
[2] => Array
(
[id] => 3
[user_id] => 1
[street] => 101 Mountfort St
)
)
)
[1] => Array
(
[id] => 2
[name] => Foo
)
[2] => Array
(
[id] => 3
[name] => Baz
[addresses] => Array
(
[0] => Array
(
[id] => 4
[user_id] => 3
[street] => 27 Sidney St
)
)
)
)
现在我想到的是:
<?php
function array_join(&$array1, $array2, $key1, $key2, $new_key) {
foreach( $array1 as $index1 => $row1 ) {
foreach( $array2 as $index2 => $row2 ) {
if( $row2[$key2] === $row1[$key1] ) {
$array1[$index1][$new_key][] = $row2;
}
}
}
}
知道此函数平均需要1.2秒的时间,如何使其计算数据更快。,这对于6000行来说非常高。。。我怎样才能优化它呢?