如何从PHP中删除数组中的元素
问题描述:
I have multiple arrays which are coming from a foreach
loop. (See my last question for more info: Array values in function)
Right here:
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Beheergroep,OU=Test,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Beheergroep,OU=Test,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Belangrijke Groep,OU=Test,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Belangrijke Groep,OU=Test,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Domeingebruikers,CN=Users,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Domeingebruikers,CN=Users,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Gebruikers,CN=Builtin,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Gebruikers,CN=Builtin,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Hoofdgroep,OU=Test,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Hoofdgroep,OU=Test,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Mailgroep,OU=Test,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Mailgroep,OU=Test,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Securitygroep,OU=Securitygroups,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Securitygroep,OU=Securitygroups,DC=stefan,DC=nl
)
)
Array
(
[count] => 1
[0] => Array
(
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Testgroep2,OU=Test,DC=stefan,DC=nl
)
[0] => distinguishedname
[count] => 1
[dn] => CN=Testgroep2,OU=Test,DC=stefan,DC=nl
)
)
Now I want to check all the arrays for a specific value.
I'm using this function to check an array.
if(strpos($check[0]['distinguishedname'][0], 'OU=Test') !== false) {
If one of the arrays contain the specific value ("OU=Test") the need to be displayed otherwise the array needs to be excluded or hidden. How can I accomplish this?
EDIT
This is my code with the foreach
loop.
$result = $adldap->user()->groups('stefan.guth');
for ($i = 0; $i < count($result); $i++) {
sort($result);
}
print_r($result);
foreach ($result as $value) {
$check = $adldap->group()->info($value, array(
'distinguishedname'
));
print_r($check);
if (strpos($check[0]['distinguishedname'][0], 'OU=Test') === false) {
}
}
答
Is this what you want? You should change the foreach loop aswell..
foreach ($result as $key => $value) {
$check = $adldap->group()->info($value, array(
'distinguishedname'
));
print_r($check);
if (strpos($check[0]['distinguishedname'][0], 'OU=Test') === false) {
unset($result[$key]);
}
}