2012-03-15 36 views
0

我有一個陣列中的格式PHP陣列和電流()

Array 
(
    [/Callum/] => Array 
     (
      [0] => ##chan1 
     ) 
    [/Adam/] => Array 
     (
      [0] => ##chan2 
     ) 
    [/Chris)/] => Array 
     (
      [0] => ##chan1 
     ) 
    [/Mike*/] => Array 
     (
      [0] => ##chan3 
     ) 
) 

而從這個我用下面的代碼,試圖獲得陣列的ID,每個信道特徵英寸

foreach($array as $row) 
{ 

    if (in_array($buf['channel'],$row)) 
    { 
     $return = $return." ".current(array_keys($array,$row)); 
    } 
} 

我的問題是,當前()似乎沒有按照我期待的方式工作。目前,如果在$ BUF /卡勒姆/而兩倍/卡勒姆/和/克里斯/

+0

array_keys每次都會返回一個NEW數組,它總是將其內部指針設置爲FIRST元素。 – 2012-03-15 17:14:17

+0

ahh,definatly解釋了爲什麼這是行不通的 – 2012-03-15 17:20:22

回答

2

爲什麼不:

foreach($array as $key => $row) 
{ 

    if (in_array($buf['channel'],$row)) 
    { 
     $return = $return . " " . $key; 
    } 
} 
+0

完美的作品:) – 2012-03-15 17:14:57

0

試試這個

foreach($array is $id => $row){ 
    $return .=" ".$id; 
} 

編輯:

foreach($array is $id => $row){ 
    if($row[0] == $buf['channel']){ 
     echo $key; //This is your key 
    } 

} 
+0

這是取代整個foreach或只是內部如果? – 2012-03-15 17:12:20

+0

整件事。但刪除$返回並再次添加您的if語句,我想我誤解了你..我會編輯我的答案.. – daker 2012-03-15 17:14:51