PHP匹配关键值的两个阵列(如MySQL连接)(PHP Match two arrays on ke

2019-10-30 05:43发布

有没有办法加入基于对密钥的相同值的两个阵列? 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,而不是其他笏左右。 在phoneArr的人不能总是在clientDate存在。

我想要的是得到一个匹配这些阵列在那里我将留下与两个阵列的信息新阵,但只存在于“PERSON_ID”匹配。

这是可行的,而不MySQL的?

Answer 1:

如果你想通过一个键值来查找数据,以及键值是在桌子上独一无二的,你可以考虑使用作为数组键,所以你的$ 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.
     }
}


文章来源: PHP Match two arrays on key value (like mysql join)