【发布时间】:2014-02-19 07:40:17
【问题描述】:
我有 2 个数组。
$a = (
array( 'number' => $value, 'name' => $name ),
array( 'number' => $value, 'name' => $name ),
array( 'number' => $value, 'name' => $name ),
);
$b = (
array( 'number' => $value, 'address' => $address ),
array( 'number' => $value, 'address' => $address ),
array( 'number' => $value, 'address' => $address ),
...
);
现在,假设 $a 中的特定记录具有 'number' = 10。PHP 中有没有一种方法可以从 $b 中提取具有 'number' = 10 的所有地址。我正在使用 foreach时刻,但它需要太长时间,因为我在 $a 中有超过 5000 条记录,在 $b 中有超过 20000 条记录。
$result = array();
foreach ($a as $tempA) {
$result[]['number'] => $tempA['number'];
$result[]['name'] => $tempA['name'];
$address = array();
foreach($b as $tempB) {
if($tempB['number'] !== $tempA['number'])
continue;
$address[] = $tempB;
}
$result[]['addresses'] = $address;
}
所以结果会是这样的:
$result = (
('number' => 10, 'name' => 'xyz', 'addresses' => array(<contains all addresses with number 10>) )
)
【问题讨论】:
-
您能否展示您当前使用 foreach 的方法,以便更好地理解数据和预期结果?伪代码对我来说不是很清楚。
-
所有这些数据都存储在哪里?
-
编辑了问题。我希望它能解决我的问题。
-
@ponciste 数据存储在 mongoDB 数据库中
-
使用查询不是更好吗?
标签: php