忽略某个值并在其中添加逗号

时间:2014-04-16 02:27:11

标签: php ldap

我想为每个值输出添加逗号,例如:A,B,C。另外我想忽略某个值而不输出它。

这是我的代码:

$result2 = ldap_search($ldapconn, "ou=group,dc=fake,dc=com", "memberuid=*$username*");
$entry1 = ldap_get_entries($ldapconn, $result2);
?>
</td>

<td>
<?php
$temp_array = array();
for ($i=0;$i<sizeof($entry1);$i++) {
    if (isset($entry1[$i]['cn'][0])) {
        if (strlen(trim($entry1[$i]['cn'][0]))!=0) {
            array_push($temp_array, $entry1[$i]['cn'][0]);
        }
    }

}
$usergroup = implode(',', $temp_array);
$usergroups = explode(",", $usergroup);

foreach($usergroups as $x=>$x_value) {
    switch ($x_value) {
        case "management":
        case "Team Leaders":
        case "superuser":

            $x_value = "";
            break;
    }
    echo $x_value;
}

所以预期的结果应该是这样的,而不在切换情况下显示上述3个值,

用户A - IT,营销

如果用户A具有值,则忽略上述值。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,如果你有一个数组,使用相同的分隔符进行内爆然后爆炸就完全没有了。在您的情况下,$usergroups将与$temp_array完全相同。

您可以大大简化代码:

// This is just an example using what I think your array contains
$temp_array = array('IT','management','superuser','Marketing');

// Write a list of words to ignore
$ignores = array("management", "Team Leaders", "superuser");

// Loop over your array and remove the entries that contain the ignored words
foreach ($temp_array as $key => $value) {
    if (in_array($value, $ignores)) {
        unset($temp_array[$key]);
    }
}

echo implode(',', $temp_array); // outputs: IT,Marketing