2014-09-05 85 views
0

我的array假設獲取關聯數組的值,如果鍵的鍵或部分匹配

$temp = array('sep', 'oct'); 

,我已經幾個月的數組包含月份名稱key和月份數字爲value

$monthsArray = array('January' => 01, 'February' => 02, 'March' => 03 //....so on); 

我想,如果$temp值與匹配(或包含)在$monthsArraykey然後輸出它的值

在上述情況下應該是output 0910

任何線索?

感謝

+0

我開始空白至此 – MMK 2014-09-05 23:53:28

+0

你可以使用array_key_exists()函數。 http://php.net/manual/en/function.array-key-exists.php – Rivnat 2014-09-06 00:01:08

回答

1
$search = array('first' => 1, 'second' => 2, 'third' => 3); 
$temp = array('sec', 'th'); 
for($i=0; $i<count($temp); $i++){ 
    foreach($search as $key => $value){ 
     if(strpos($key,$temp[$i])!== FALSE){ 
      echo $value . ' '; 
     } 
    } 
} 
+0

當我在實際陣列上運行時,它會返回'10'和'0'。什麼是問題。它應該返回09和10 – MMK 2014-09-06 00:32:08

+0

在你的數組中使用'1月'=>'01','2月'=>'02'... – Rivnat 2014-09-06 00:33:58

+0

工作! 謝謝 – MMK 2014-09-06 00:42:06

2

你可以嘗試這樣的

function getMonth($temp){ 
    global $mothsArray; 
    foreach ($monthsArray as $key => $value) { 
     foreach($temp as $check) 
     if (strpos($key,$check)!== FALSE) { 
      return $value; 
     } 
    } 
    return false; 
} 

功能我敢肯定,你可以做的更好,但你可以從這個

+0

我在代碼中做了一些改動,它返回了'10'和'0'。可能會發生什麼問題 – MMK 2014-09-06 00:31:11