0

有没有办法根据键中的相同值连接两个数组?作为 MySQL 中的示例,当两个字段具有相同的值时,您可以左连接两个表。

第一个名为“phoneArr”的数组是一个包含 person_id 和电话号码的数组。第二个名为“clientDate”的数组是一个包含 person_id 和约会日期的数组。

以下是数组:

$phoneArr = array();

$phoneArr[0]['person_id'] = "123456";
$phoneArr[0]['phone'] = "555-2222";

$phoneArr[1]['person_id'] = "7654321";
$phoneArr[1]['phone'] = "555-1111";


$clientDate = array();
$clientDate[0]['person_id'] = "123456";
$clientDate[0]['date_time'] = "01-07-13 13:00";

$clientDate[1]['person_id'] = "7654321";
$clientDate[1]['date_time'] = "01-07-13 10:30";

现在,如果 clientDate 中的人员 id 将始终存在于 phoneArr 中,而不是其他 wat 中。phoneArr 中的人员并不总是存在于 clientDate 中。

我想要的是获得这些数组的匹配,我将留下一个新数组,其中包含两个数组的信息,但只有“person_id”上有一个匹配项。

这在没有 MySQL 的情况下可行吗?

4

1 回答 1

2

如果您要通过键值查找数据,并且该键值在表中是唯一的,则可以考虑将其用作数组键,因此您的 $phoneArr 将设置为:

$phoneArr["123456"]['phone'] = "555-2222";
$phoneArr["7654321"]['phone'] = "555-1111";

对另一个数组执行相同的操作

那么你就可以:

foreach ($phoneArr AS $id=>$record) {
    if (array_key_exists($id,$clientDate)) {
         //  the client id is $id, $record has their phone #, and $clientDate[$id] has their date/time
         // do something with it here - either process it (preferable) or put the data in another array.
     }
}
于 2013-06-27T22:31:03.887 回答