データの特定のレイヤーを削除したい多次元配列があります。基本的に、数値([0] =>配列、[1] =>配列、[2] =>配列、[3] =>配列)のすべてのラベルを削除したいと思います。
これが私が現在持っている配列です:
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
複数の値を返す場合、最初の値を除くすべてが削除されることにも注意してください。ただし、既存のコードと提供したサンプルデータに基づくと、そうではないように思われます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加