2014-02-19 21 views
0

我有一個數組,我需要經過,取出'='之前的所有內容,包括'='以及某些單詞。然後用','分隔數組的其餘內容。
這裏是數組的內容:$行[「角色」]我試圖去掉'='之前的任何東西以及特定的詞

$rows['role'][0] = cn=Service Desk Customer,ou=Groups,dc=,dc=co,dc=uk 
$rows['role'][1] = cn=User,ou=Groups,dc=,dc=co,dc=uk 
$rows['role'][2] = cn=Site Administrator,ou=Groups,ou=Kiev,ou=Ukraine,ou=Euro-Med,dc=,dc=co,dc=uk 
$rows['role'][3] = cn=Agent Biometric,ou=Groups,ou=Tirana,ou=Albania,ou=Euro-Med,dc=,dc=co,dc=uk 
$rows['role'][4] = cn=Agent Welcome,ou=Groups,ou=Tripoli,ou=Libya,ou=Euro-Med,dc=,dc=co,dc=uk 

在那之後,我需要對結果進行排序成兩個陣列,一個角色,包括服務檯客戶,站點管理員等還有一個地點位於利比亞的黎波里,阿爾巴尼亞。

我想結束一個$角色字符串或數組,其中只包含諸如Service Desk Customer,Site Administrator等的項目。然後是包含所有位置信息的$ location字符串或數組。

這是我到目前爲止。我能夠刪除我想要刪除的所有內容。我遇到的唯一困難是將以cn =開頭的項目拖到$ roles變量(最好是cn =已移除),並將ou =移至$ locations變量。

$removes = array('dc=','ou=Groups','cn=User','dc=co','dc=uk'); 



     $rows[$i] = array(
      'picture' => $jpeg, 
      'first'  => $info[$i]["givenname"][0], 
      'last'  => $info[$i]["sn"][0], 
      'mail'  => $info[$i]["mail"][0], 
      //'role'  => $info[$i]["memberof"][0], 
     ); 
     foreach($info[$i]['memberof'] as $key => $value){ 
      $replace = str_replace($removes,'',$value); 
      $rows[$i]['role'][$key] = $replace; 
     } 
     array_filter($rows[$i]['role']); 

     print_r ($rows[$i]['role']); 
    } 
    ldap_close($ds) 
+1

什麼是預期的結果? –

+0

如果你可以給出一個樣本輸出,這將是有幫助的 – aelor

+0

我想最終得到一個角色數組,只顯示以'cn ='開頭的所有內容,而不是cn = like $ roles ='站點管理員,服務檯客戶,代理生物識別';然後是一個位置數組,其中的所有內容都以ou = minus ou開頭,如$ location ='Kiev,Ukraine,Euro-Med,Tirana,Albaina';我想刪除所有的cn = amd ou =,以及某些單詞,如Groups,User,dc = tpcontact,dc = co和dc = uk – slpcc63

回答

0

您可以使用:

foreach ($rows['role'] as $r) { 
    print_r (explode(',', preg_replace('/(^|,)\K[^=]*=/', '', $r))); 
} 

對於前兩排它給出了這樣的輸出:

Array 
(
    [0] => Service Desk Customer 
    [1] => Groups 
    [2] => domain 
    [3] => co 
    [4] => uk 
) 
Array 
(
    [0] => User 
    [1] => Groups 
    [2] => domain 
    [3] => co 
    [4] => uk 
) 
+0

@ slpcc63:這樣做對你有用嗎? ? – anubhava

0

你可以試試這個:

$result = array_map(function ($val) { 
         return substr($val,3, strpos($val, ',') - 3); }, 
        $rows['role']); 

print_r($result); 
相關問題