NetLook: String umwandeln

Beitrag lesen

Hi!

Ich möchte das Array solange auslesen, bis es die Letzte Unterkategorie ausgelesen hat. Dafür müssen die Array Keys immer wieder erweitert werden. Der Code oben war nur zum testen, von einem original, damit wollte ich testen in welcher "Schreibweise" es funktioniert.

Hier wie ich es wirklich vorhab:

  
$Tiefe = "['getCategoryTreeResult']['Nodes']['Category']";  
$i=0;  
  
  
function Abfragen($Tiefe){  
  foreach($Result.$Tiefe as $ResultWert){  
   echo "1->: ".$ResultWert."<br>";  
    if(is_array($ResultWert) && !empty($ResultWert)){  
     $Tiefe = $Tiefe."[$i]['Nodes']['Category']";  
     Abfragen($Tiefe);  
     $i++;  
     }  
     else  
     {  
     echo "2->: ".$ResultWert."<br>";  
    }  
  }  
}  

Ist $ResultWert also ein Array, wird $Tiefe mit weiteren Array Keys erweitert und die Funktion damit erneut aufgerufen.

Eine andere Möglichkeit habe ich bisher nicht gefunden oder hinbekommen. Die Funktion array2Table habe ich mal verändert, aber habe sie nicht so hinbekommen, das einfach alle Werte nur untereinander geschrieben werden. Zudem verstehe ich auch nicht, wie es hier funktioniert, dass das Array komplett durchgegangen wird, ohne das irgendwo neue Array Keys übergeben werden?!

Hier der Code:

  
/**  
 * Translate a result array into a HTML table  
 *  
 * @author      Aidan Lister <aidan@php.net>  
 * @version     1.3.1  
 * @link        http://aidanlister.com/repos/v/function.array2table.php  
 * @param       array  $array      The result (numericaly keyed, associative inner) array.  
 * @param       bool   $recursive  Recursively generate tables for multi-dimensional arrays  
 * @param       bool   $return     return or echo the data  
 * @param       string $null       String to output for blank cells  
 */  
  
function array2table($array, $recursive = false, $return = false, $null = '&nbsp;')  
{  
    // Sanity check  
 if (empty($array) || !is_array($array)) {  
  return false;  
    }  
  
    if (!isset($array[0]) || !is_array($array[0])) {  
        $array = array($array);  
    }  
  
    // Start the table  
    $table = "<table>\n";  
  
    // The header  
    $table .= "\t<tr>";  
    // Take the keys from the first row as the headings  
 foreach (array_keys($array[0]) as $heading) {  
  $table .= '<th>' . $heading . '</th>';  
 }  
    $table .= "</tr>\n";  
  
    // The body  
 foreach ($array as $row) {  
        $table .= "\t<tr>" ;  
  foreach ($row as $cell) {  
   $table .= '<td>';  
  
            // Cast objects  
            if (is_object($cell)) { $cell = (array) $cell; }  
  
            if ($recursive === true && is_array($cell) && !empty($cell)) {  
                // Recursive mode  
                $table .= "\n" . array2table($cell, true, true) . "\n";  
            } else {  
                $table .= (strlen($cell) > 0) ?  
                    htmlspecialchars((string) $cell) :  
                    $null;  
            }  
  
            $table .= '</td>';  
  }  
  
        $table .= "</tr>\n";  
 }  
  
    // End the table  
    $table .= '</table>';  
  
    // Method of output  
    if ($return === false) {  
        echo $table;  
    } else {  
        return $table;  
    }  
}  

Gruß
NetLook