Zum Inhalt springen

Inhalt eines kompletten Arrays als Return einer Methode zurü

Erstellt am 19. Februar 2004 · 4 Antworten · letzte Antwort am 19. Februar 2004

Tags: Frage

XrayD ·

Hallo zusammen,

ich habe folgendes Problem: Möchte den Inhalt eines kompletten Array als Return einer Methode zurückgeben.

habe dafür folgendes Konstrukt gebastelt:

case "document": 
if ($this->internal["currentRow"][$fN] != '') { 
   $filearray = ($this->internal["currentRow"][$fN]); 
   $files = explode (',', $filearray);            
   foreach ($files as $file) {             
      $counter++; 
      $downloadurl = "uploads/tx_xyz/$file";          
      $downloadlink = '<a href='.$downloadurl.'>Vertrag Nr.'.$counter.'</a><br>'; 
      $ausgabe = str_pad($string,50,$downloadlink); 
   } 
   return $ausgabe; 
                     
} else { return 'N/A'; } 
break;

Das Problem dabei ist, dass str_pad einfach nicht mit dem Inhalt der variable funktioniert. Es kommt einfach gar nix dabei raus... Hab schon genug ge"debug"t.

Nun frage ich mich welche Funktion ich nutzen kann umd die String aneinander zu hängen damit ich einen einzigen String als return zurückgeben kann. Nach folgendem Ausgabe-Muster:

<a href='uploads/tx_unimaemployeedb/vertragy.pdf'>Vertrag 1<a/><a href='uploads/tx_unimaemployeedb/vertragx.pdf'>Vertrag 2<a/>

Hat noch jemand von Euch PHP-Profis eine Idee?

maxhb ·

Hi!
[​quote="XrayD"]

...
    $ausgabe='';
   foreach ($files as $file) {             
      $counter++; 
      $downloadurl = "uploads/tx_xyz/$file";          
      $downloadlink = '<a href='.$downloadurl.'>Vertrag Nr.'.$counter.'</a><br>'; 
      $ausgabe .= $downloadlink; 
   } 
   return $ausgabe; 
                     
} else { return 'N/A'; } 
break;

Hoffentlich ist das was Du gesucht hast, denn ehrlich gesagt bin ich mir sehr unsicher, dass mir klar geworden ist, worum es Dir geht...

Um einen Array mit Strings aufzubauen und diesen als Wert zurückzugeben machst Du am besten folgendes:

$arr=array(); // Leeres Array erzeugen
foreach($files as $file) {
      $counter++; 
      $downloadurl = "uploads/tx_xyz/$file";          
      $downloadlink = '<a href='.$downloadurl.'>Vertrag Nr.'.$counter.'</a><br>'; 
      $arr[]=$downloadlink; // Ein Arrayelement hinten anhängen
}
return $arr;

CU
maxhb

XrayD ·

[​quote="maxhb"]Hi!

...
return $arr;

Danke für die schnelle Reaktion. Beim debug(array($arr)); kommt folgender Array zum Vorschein:

0 <a href=uploads/tx_unimaemployee/LastUpdateTypo3.txt>Vertrag Nr.1</a><br>
 1 <a href=uploads/tx_unimaemployee/stylesheet.css>Vertrag Nr.2</a><br>

Soweit so gut, allerdings wird mir in meinem Feld immer nur das erste Element dieses arrays ausgegeben.

maxhb ·

Hi!

XrayD schrieb

Soweit so gut, allerdings wird mir in meinem Feld immer nur das erste Element dieses arrays ausgegeben.

Wie gibst Du denn die Elemente aus? Schick doch mal den PHP-Code...

CU
maxhb

XrayD ·
maxhb schrieb

Hi!

XrayD schrieb

Soweit so gut, allerdings wird mir in meinem Feld immer nur das erste Element dieses arrays ausgegeben.

Wie gibst Du denn die Elemente aus? Schick doch mal den PHP-Code...

CU
maxhb

aufgebaut ist das ganze wie es der extension kickstarter vorgegeben hat:

dann rufe ich den inhalt der felder als beispiel folgendermaßen ab: .$this->getFieldContent("document");

Habe es jetzt erstmal provisorisch so gelößt:

return $arr[0].$arr[1].$arr[2].$arr[3].$arr[4];