Array aus eigener Funktion exportieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array aus eigener Funktion exportieren

    Wie bekomme ich ein array aus einer funktion?
    Eigentlich sollte das doch so stimmen?
    PHP-Code:
    <?php
    function scan_dir ($dir) {

      if (
    $handle opendir($dir)) {
          while (
    false !== ($res readdir($handle))) {
              if (
    is_dir($dir.$res) && $res != '.' && $res != '..') {
                
    $res_d $res;
                
    $array_dir[$res_d] = $res_d;
                
    // echo ' dir-'.$dir.$res.' ';
                // scan_dir ($dir.$res.'/');
              
    }
              elseif (
    is_file($dir.$res)) {
                
    $res_f $res;
                
    $array_file[$res_f] = $res_f;
                
    // echo ' File-'.$res.' ';
              
    }
          }
          
    closedir($handle);
      }
      
    ksort($array_dir);
      
    ksort($array_file);
      return array(
    $array_dir,$array_file);
    }
    ?>


    <?php
      
    include("./code/config/config.ini");
      include(
    "./code/include/scan_dir.icl");

      
    scan_dir ($original_dir);

      foreach (
    $array_dir as $key) {
        echo (
    $array_dir);
        echo 
    '<br />';
      }
    ?>

  • #2
    PHP-Code:
    <?php

    function foobar() {
        
    /* macht irgendwas */

        
    return array($wert1$wert2);
    }

    $werte foobar()
    echo 
    $werte[0]; // ersten Wert ausgeben
    echo $werte[1]; // zweiten Wert ausgeben

    ?>

    Kommentar


    • #3
      ... oder halt mit list (in diesem Fall ist das brauchbar):

      PHP-Code:
      define('crlf'"\r\n"); // oder was auch immer
      // ...
      list ($dirs$files) = scan_dir($path);
      // ...
      foreach ($dirs as $dir_entry) {
        echo 
      '['$dir_entry']'crlf;
      }
      foreach (
      $files as $file_entry) {
        echo 
      $file_entrycrlf;

      PHP-Code:
      //...
        
      foreach ($array_dir as $key) {
          echo (
      $array_dir);
          echo 
      '<br />';
        }
      ?> 
      Der Name der Variablen $key lässt mich vermuten, dass du in der Benutzung von foreach noch nicht so geübt bist.

      foreach kann entweder nur ARRAY-Werte ("values"):
      PHP-Code:
      $array = array (
        
      'foo' => 'bar',
        
      'fred' => 'barney',
        
      'key' => 'value',
      );

      foreach (
      $array as $value) {
        echo 
      $valuecrlf;

      ... oder ARRAY-Schlüssel (Indizes, "keys") UND "values":
      PHP-Code:
      foreach ($array as $key => $value) {
        echo 
      $key'=>'$valuecrlf;

      ... und neuerdings auch solchen Unfug:
      PHP-Code:
      $array_of_arrays = array (
        
      'foo' => array ( 'bar''baz' ),
        
      'fred' => array ('barney''bambam'),
        
      'key' => array ('value1''value2'),
      );

      foreach (
      $array_of_arrays as $key => list ($value1$value2)) {
        echo 
      $key'=> array ('$value1', ' $value2')'crlf;

      Das setzt aber voraus, dass der jeweilige Value-Wert selbst wieder ein Array ist, du benötigst also ein Array-of-Arrays. Am besten vergisst du die letzte Möglichkeit wieder. Das braucht kein Mensch und führt nur zu mehr Fehlern. Ich wollte es nur der Vollständigkeit halber erwähnt haben.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar

      Lädt...
      X