[英]How to remove specific layer in multi-dimensional array in PHP?
我有一個多維數組,我想在其中刪除特定的數據層。 基本上,我想刪除所有數字標簽,即 [0] => Array、[1] => Array、[2] => Array 和 [3] => Array。
這是我目前擁有的數組:
Array
(
[0] => Array
(
[CN=Abraham Lincoln,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[cn] => Abraham Lincoln
)
)
[1] => Array
(
[CN=Administrator,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[distinguishedname] => CN=Administrator,CN=Users,DC=test,DC=io
)
)
[2] => Array
(
[CN=CloudNCUsers,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => group
)
[distinguishedname] => CN=CloudNCUsers,CN=Users,DC=test,DC=io
)
)
[3] => Array
(
[CN=Jill Dope,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[distinguishedname] => CN=Jill Dope,CN=Users,DC=test,DC=io
)
)
)
這是我需要的數組:
Array
(
[CN=Abraham Lincoln,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[cn] => Abraham Lincoln
)
)
[CN=Administrator,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[distinguishedname] => CN=Administrator,CN=Users,DC=test,DC=io
)
[CN=CloudNCUsers,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => group
)
)
[CN=Jill Dope,CN=Users,DC=test,DC=io] => Array
(
[objectclass] => Array
(
[0] => top
[1] => person
[2] => organizationalPerson
[3] => user
)
[distinguishedname] => CN=Jill Dope,CN=Users,DC=test,DC=io
)
)
任何幫助將不勝感激,謝謝!
您可以使用key
從數組中刪除級別並reset
並保存到新數組:
$result = array();
foreach ($entries as $entry) {
$result[key($entry)] = reset($entry);
}
當您最初加載數組時,您應該能夠做同樣的事情以節省這個額外的步驟:
$entry = ldap_get_entries($ldapconnection, $result);
$array[key($entry)] = reset($entry);
請注意,這假設所有鍵值( CN=Abraham Lincoln,CN=Users,DC=test,DC=io
等)都是唯一的。 如果不是,則數組中較晚的值將覆蓋輸出中較早的值。 另請注意,如果ldap_get_entries
返回多個值,這將刪除除第一個之外的所有值。 但是,根據您現有的代碼和您提供的示例數據,情況似乎並非如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.