1

我想用“SamAccountName”的值获取“GUID”的值。即,我只有值 pf 'SamAccountName',我想获取数组的那部分的 'GUID' 值。

Array
(
  [0] => Array
    (
        [DistinguishedName] => CN=johnn@playgroundla,OU=playgroundla,OU=Hosting,DC=exch024,DC=domain,DC=local
        [GUID] => 26d7c204-7db7-4601-8cd2-0dd0d3b37d97
        [OriginatingServer] => dcprov024-CA-1.exch024.domain.local
        [Name] => johnn@playgroundla
        [HostingObjectType] => Array
            (
                [HostingObjectTypes] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchange2007Mailbox
                        [2] => ActiveDirectoryUser
                    )

            )

        [HostingOwners] => Array
            (
                [HostingObjectOwners] => Array
                    (
                        [0] => MSExchange2007Mailboxes
                        [1] => ActiveDirectoryUsers
                    )

            )

        [Attributes] => Array
            (
                [Hidden] => 
                [ReadOnly] => 
                [SpecialAccess] => 
                [Items] => Array
                    (
                    )

            )

        [DisplayName] => John Nolan
        [SamAccountName] => johnn_playgroundla
        [FullSamAccountName] => EXCH024\johnn_playgroundla
        [UserPrincipalName] => johnn@playgroundla.com
        [AccountExpires] => 
        [Enabled] => 
        [EnabledFeatures] => Array
            (
                [string] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchangeMailboxes
                        [2] => ActiveDirectoryUsers
                    )

            )

        [LastLogonTimestamp] => 
    )

[1] => Array
    (
        [DistinguishedName] => CN=csliney@playgroundla,OU=playgroundla,OU=Hosting,DC=exch024,DC=domain,DC=local
        [GUID] => 71224be8-1b8b-46e7-97ef-2cd873bf9b7f
        [OriginatingServer] => dcprov024-CA-1.exch024.domain.local
        [Name] => csliney@playgroundla
        [HostingObjectType] => Array
            (
                [HostingObjectTypes] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchange2007Mailbox
                        [2] => ActiveDirectoryUser
                    )

            )

        [HostingOwners] => Array
            (
                [HostingObjectOwners] => Array
                    (
                        [0] => MSExchange2007Mailboxes
                        [1] => ActiveDirectoryUsers
                    )

            )

        [Attributes] => Array
            (
                [Hidden] => 
                [ReadOnly] => 
                [SpecialAccess] => 
                [Items] => Array
                    (
                    )

            )

        [DisplayName] => Christopher Sliney
        [SamAccountName] => csliney_playgroundla
        [FullSamAccountName] => EXCH024\csliney_playgroundla
        [UserPrincipalName] => csliney@playgroundla.com
        [AccountExpires] => 
        [Enabled] => 
        [EnabledFeatures] => Array
            (
                [string] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchangeMailboxes
                        [2] => ActiveDirectoryUsers
                    )

            )

        [LastLogonTimestamp] => 
    )

[2] => Array
    (
        [DistinguishedName] => CN=lee@playgroundla,OU=playgroundla,OU=Hosting,DC=exch024,DC=domain,DC=local
        [GUID] => b428b57f-4cd4-4243-a76a-f25f5ff3be97
        [OriginatingServer] => dcprov024-CA-1.exch024.domain.local
        [Name] => lee@playgroundla
        [HostingObjectType] => Array
            (
                [HostingObjectTypes] => Array
                    (
                        [0] => MSExchange2007Mailbox
                        [1] => ActiveDirectoryUser
                    )

            )

        [HostingOwners] => Array
            (
                [HostingObjectOwners] => Array
                    (
                        [0] => MSExchange2007Mailboxes
                        [1] => ActiveDirectoryUsers
                    )

            )

        [Attributes] => Array
            (
                [Hidden] => 
                [ReadOnly] => 
                [SpecialAccess] => 
                [Items] => Array
                    (
                    )

            )

        [DisplayName] => Lee Roderick
        [SamAccountName] => lee_playgroundla
        [FullSamAccountName] => EXCH024\lee_playgroundla
        [UserPrincipalName] => lee@playgroundla.com
        [AccountExpires] => 
        [Enabled] => 
        [EnabledFeatures] => Array
            (
                [string] => Array
                    (
                        [0] => MSExchangeMailboxes
                        [1] => ActiveDirectoryUsers
                    )

            )

        [LastLogonTimestamp] => 
    )

[3] => Array
    (
        [DistinguishedName] => CN=theresa@playgroundla,OU=playgroundla,OU=Hosting,DC=exch024,DC=domain,DC=local
        [GUID] => 4b2aee17-9e88-4de9-b95b-63a9877835a6
        [OriginatingServer] => dcprov024-CA-1.exch024.domain.local
        [Name] => theresa@playgroundla
        [HostingObjectType] => Array
            (
                [HostingObjectTypes] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchange2007Mailbox
                        [2] => ActiveDirectoryUser
                    )

            )

        [HostingOwners] => Array
            (
                [HostingObjectOwners] => Array
                    (
                        [0] => MSExchange2007Mailboxes
                        [1] => ActiveDirectoryUsers
                    )

            )

        [Attributes] => Array
            (
                [Hidden] => 
                [ReadOnly] => 
                [SpecialAccess] => 
                [Items] => Array
                    (
                    )

            )

        [DisplayName] => Theresa Baker
        [SamAccountName] => theresa_playgroundla
        [FullSamAccountName] => EXCH024\theresa_playgroundla
        [UserPrincipalName] => theresa@playgroundla.com
        [AccountExpires] => 
        [Enabled] => 
        [EnabledFeatures] => Array
            (
                [string] => Array
                    (
                        [0] => ActiveSync
                        [1] => MSExchangeMailboxes
                        [2] => ActiveDirectoryUsers
                    )

            )

        [LastLogonTimestamp] => 
    )
)

这最初是一个 stdClass 对象,但我使用 json_decode(json_encode($obj), true) 转换为关联数组。

4

5 回答 5

1

您可以使用一个简单的循环来获取它

$id = 0;
foreach($data as $item) {
  if (isset($item['SamAccountName']) && 'accountName' == $item['SamAccountName']) {
    $id = $item['GUID'];
    break;
  }
}
var_dump($id);
于 2013-10-11T20:07:49.657 回答
1

这是你想要的?

function findBySam($arrayList, $sam) {

    foreach($arrayList as $array) {
      if($array['SamAccountName'] == $sam) {
        return $array;
      }
    }
    return false;
}
于 2013-10-11T20:07:56.283 回答
1

听起来您想要获取“SamAccountName”值的 GUID 部分。使用 foreach 循环:

function getGUID($san, $array) {
    foreach($array as $a) {
        if($a['SamAccountName'] == $san) {
            return $a['GUID'];
        }
    }
    return false;
}

$guid = getGUID("SamAccountNameHere", $yourArray);
于 2013-10-11T20:08:49.383 回答
0

这是您可以使用的函数的示例。这假定在数组中只有一个具有您提供的 SamAccountName 的对象(它只使用它找到的第一个对象)。它返回匹配数组的 GUID,如果找不到具有匹配 SamAccountName 的数组,则返回 false。

function getGuidForSamAccountName($arr, $name) { 
    foreach ($arr as $elem) {
        if ($elem['SamAccountName'] === $name) {
            return $elem['GUID'];
        }
    }
    return false; //No match found
}
于 2013-10-11T20:07:40.887 回答
0

可以使用php的array_filter函数:http: //php.net/manual/en/function.array-filter.php

例子:

$GUID = "sample";
array_filter($array, "findElement");
function findElement($el) {
return $el["GUID"] == $_GLOBAL["GUID"];
}

不是一个非常优雅的解决方案......但它应该可以工作。

于 2013-10-11T20:08:58.073 回答