[PHP] Downline / Referalanzeige Problem

bast1e

bast1e

Eroberer
Hi!
Bei meinem neuen Projekt ist gerade das Refsystem dran.
Hierzu hab ich eine Funktion geschrieben, die in X Ebenen die geworbenen Mitglieder findet:
PHP:
$sysconfig['reflayer'] = 10;

function bank_referals($data,$usr_id,$layer = 0) {
	global $sysconfig;
	foreach ($data AS $user) {
		if($user['solicitor'] == $usr_id) {
			$refs['e'.$layer]['u'.$usr_id][] = $user['u_id'];
			if($layer < $sysconfig['reflayer']) $temp = bank_referals($data,$user['u_id'],$layer+1);
			if(is_array($temp)) $refs = array_merge_recursive($refs,$temp);
		}
	}
 return $refs;
}

solicitor -> Werber

Nun möchte ich das ganze vernünftig in HTML ausgeben (bin wahrscheinlich zu blockiert)

der Testarray den ich nutze:
Code:
Array
(
    [e0] => Array
        (
            [u1] => Array
                (
                    [0] => 2
                    [1] => 10
                )

        )

    [e1] => Array
        (
            [u2] => Array
                (
                    [0] => 11
                )

            [u10] => Array
                (
                    [0] => 13
                )

        )

    [e2] => Array
        (
            [u11] => Array
                (
                    [0] => 12
                )

        )

)

Daraus soll werden:

Code:
1
 -> 2
     -> 11
        -> 12
  -> 10
     -> 13

In dem DataArray können auch ruhig Ebene und werber vertauscht werden also
$refs['e'.$layer]['u'.$usr_id][] = $user['u_id'];
oder
$refs['u'.$usr_id]['e'.$layer][] = $user['u_id'];

das ist ja egal ;)

Hat jemand eine Idee?

Danke schonmal für die Zeit, die ihr ins Lesen investiert habt :)

edit: mein versuch:

PHP:
		$referals = bank_referals($info,$usrid); // Array

		foreach($referals AS $key => $refs) {
			$spaces = array_keys($refs);
			$spaces = $spaces[0];
			foreach($refs[$spaces] AS $ref) {
				$space = str_replace("e","",$spaces);
				for($i=0;$i<=$space;$i++) echo "&nbsp;";
				echo $ref."<br />\n";
			}
		}

dabei ist zu beachten, dass ich
$refs['u'.$usr_id]['e'.$layer][] = $user['u_id'];
genommen hab (also den array ein wenig verdreht)

kommt nur:
Code:
1
->2
->10
-->11
--->12
-->13
dummerweise ist 11 nicht ref von 10 sondern von 2.
 
Zuletzt bearbeitet:
gelöst - ich haus einfach in die funktion mit rein :D
danke für euer gehör
 

Ähnliche Themen

E/A-Fehler (.snapshots is not a btrfs subvolume).

Verschlüsseltes Backup-Script mit rsync

Shell Skript beschleunigen

HandbrakeCLI Shell Skript

[Perl] Perl OO Methodenaufruf in anderem Objekt

Zurück
Oben