2013-06-27 53 views
0

有沒有一種方法可以基於鍵中的相同值連接兩個數組? 作爲MySQL中的一個例子,當兩個字段的值相同時,您可以將兩個表連接在一起。PHP在鍵值上匹配兩個數組(如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"; 

現在,如果人在ID將clientDate總是在phoneArr存在,而不是其他笏左右。 phoneArr中的人員並不總是存在於clientDate中。

我想要的是獲得這些數組的匹配,我將留下一個新數組與兩個數組的信息,但只有'person_id'上有匹配。

這是否可以不使用MySQL?

回答

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. 
    } 
} 
+0

大,我要考慮這樣做。我需要在其他地方做一些更改,因爲我沒有在腳本中輸入這些數組,而是使用for循環創建它們。 – BonifatiusK