2012-03-16 9 views
1

可能な重複のうち、連想配列を作成:
Dynamically creating/inserting into an associative array in PHPは、グループとメンバー

私はのためのループ内で生成された次のエントリを持っています。

CN=Group01,CN=Users,DC=cnn,DC=local - [email protected] 
CN=Group04,CN=Users,DC=cnn,DC=local - [email protected] 
CN=Group02,CN=Users,DC=cnn,DC=local - [email protected] 
CN=Group04,CN=Users,DC=cnn,DC=local - [email protected] 

は、私が連想配列でそれらを手配することができますどのように、そう、それは次のようになります。

Array 
(
    [Group01] => ([0]=>[email protected]), 
    [Group02] => ([0]=>[email protected]), 
    [Group04] => (
       [0]=>[email protected], 
       [1]=>rst.net 
       ) 
) 

連想配列がCN=Users, DC=cnn, DC=local文字列を持っている必要はありません。

私はループのために持っているコードは次のとおりです。

for ($i=0; $i < $entries["count"]; $i++) 
{ 
    if (isset($entries[$i]["mail"][0]) && isset($entries[$i]["memberof"][0])) 
    { 
     echo $entries[$i]["memberof"][0]." - ".$entries[$i]["mail"][0]."<br />"; 
    } 
} 

おかげ

+0

あなたのforループでは、これらのエントリを生成すると、なぜあなたにも連想配列を作成してはいけません? – Josh

+0

私はそれを行うことを計画しています..ちょっとわかりません.. – Jake

+0

ねえ。それはそれの複製ではありません..それは別の質問です。 – Jake

答えて

2
$info = array(); 
foreach ($entries as $entry) { 
    $parts = explode(',', $entry); 
    $groupName = substr($parts[0], 3); 
    $emailParts = explode(' - ', $parts[3]); 
    $email = $emailParts[1]; 
    $info[$groupName][] = $email; 
} 
0
$records = file('yourfile.csv'); 
$grpUsrArr = array(); 
foreach($records as $lineNo => $record); 
{ 
    $data = explode(',', $record); 
    $grpName = explode('=', $data[0]); 
    $usrName = explode(' - ', $data[3]); 
    $grpUsr[end($grpName)][]=end($usrName); 
} 
関連する問題