Array erweitern funktioniert nicht

angelozehr

Mitglied
Hi zusammen,

In meinem Code durchlaufe ich eine Schlaufe, welche folgenden Code beinhaltet:

PHP:
$users = array();
if( !array_key_exists($ou,$users) ){
	$users[$ou] = $cn ;
} else {
	$users[$ou] .= ';' . $cn ;
}

dabei haben $cn und $ou immer wieder andere Werte.

Meiner Meinung nach sollte so etwas rauskommen:
Code:
array(4) { 
	[1] =>  string(1) "1" 
	[1] =>  string(3) "1;2" 
	[2] =>  string(1) "3" 
	[2] =>  string(3) "3;4" 
	[3] =>  string(1) "5" 
	[3] =>  string(3) "5;6" 
	[4] =>  string(1) "7" 
	[4] =>  string(3) "7;8" 
}

Doch irgendwie erstellt der Code jedes mal den Array neu und es passiert Folgendes:

Code:
array(4) { 
	[1] =>  string(1) "1" 
	[1] =>  string(1) "2" 
	[2] =>  string(1) "3" 
	[2] =>  string(1) "4" 
	[3] =>  string(1) "5" 
	[3] =>  string(1) "6" 
	[4] =>  string(1) "7" 
	[4] =>  string(1) "8" 
}

Warum? Und wie ginge es richtig?

Danke schon im Voraus!


PS: den Werten muss ich einen Index zuweisen
 
Probiere mal "$users[$ou] = $users[$ou]. ';' . $cn ;" ohne Punkt und den alten Wert.
 
Zuletzt bearbeitet von einem Moderator:
Hat leider auch nicht geholfen,
hier mal der gesamte Script:
PHP:
<?php

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
 * Dieses Script dient dem Nachschlagen und Eintragen der            *
 * Department-Number der einzelnen User, die in der MySql-Datenbank  *
 * abgelegt sind. Die Informationen werden aus der Ldap-DB bezogen.  *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

// Auslesen der Login-Liste
	include('mysqlconnect.php');
	include('ldapconnect.php' );
	
		// Gesuchten User-Eintrag ansteuern: Basis DN
			$dn = "ou=BROKER,ou=USEREXTERN,ou=USER,ou=HPCH,o=HPH" ;
			
		// Filter definieren
			$filter = "(objectClass=*)" ;
			
		// Auslesen der organisationGroups (aller departmentNumbers der Broker)
			$sr=ldap_list($ds,$dn,$filter);
			$info = ldap_get_entries($ds, $sr);
			
			for ($i=0; $i<$info["count"]; $i++) {
			
				// Zuschneiden der dn auf die gesuchte departmentNumber
					$ou = substr($info[$i]["dn"],3) ;
					$ou = substr($ou,0,strpos($ou,","));
					
				// Auslesen aller Broker und deren Zuweisung zu ihrer organisationGroup bzw. departmentNumber gemäss dem obigen Ablauf
					$dn_2 = "ou=" . $ou . ",ou=BROKER,ou=USEREXTERN,ou=USER,ou=HPCH,o=HPH" ;
					$sr=ldap_list($ds,$dn_2,$filter);
					$read = ldap_get_entries($ds, $sr);
					for ($j=0; $j<$read["count"]; $j++) {
						$cn = substr($read[$j]["dn"],3) ;
						$cn = substr($cn,0,strpos($cn,","));
						
						// Eintragen aller Informationen in ein Array. Der Index gibt die organisationGroup an
							$users = array();
							if( !array_key_exists($ou,$users) ){
								$users[$ou] = $cn ;
							} else {
								$users[$ou] = $users[$ou]. ';' . $cn ;
							}
						var_dump( $users );echo( '<br />' );
					}
					
			}
	
	ldap_close ( $ds );
	mysql_close( $link );
	
?>

ich hoff ihr blickt da noch durch^^
 
Zurück