Array aus eigener Funktion exportieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    ?>

    Comment


    • #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!

      Comment

      Working...
      X