2016-09-19 202 views
0

我需要这个函数来返回一个数组。当我调用函数打印数组时,但在函数中使用return $finalResult时,它仅打印第一个数组。函数返回数组php


function readData($file) 
{ 
    $finalResult = array(); 
    $inputText = file_get_contents($file); 
    $textLines = explode("\n", $inputText); 
    foreach ($textLines as $line) 
    { 
     $expLine = explode("\t", $line); 
     if (count($expLine) < 8) 
     { 
      # The line does not have enough items, deal with error 
      //echo "Item " . (isset($expLine[0]) ? $expLine[0]." " : "") . "ignored    because of errors\n"; 
      continue; 
     } 
     $finalResult = array(
      "title" => $expLine[0], 
      "author" => $expLine[1], 
      "isbn" => $expLine[2], 
      "hardcover" => $expLine[3], 
      "hc-quantity" => $expLine[4], 
      "softcover" => $expLine[5], 
      "sc-quantity" => $expLine[6], 
      "e-book" => $expLine[7], 
     ); 
     $arr = $finalResult; 
     print_r($arr); 
    } 
} 
+0

移动环路以外的print_r}和然后改变它返回...你有$ arr = $ finalResult;使用数组合并将它们加在一起 – ZBerg

回答

0

你喜粥合并或推数组$ finalResult看到sammple

function readData($file){ 

    $finalResult = array(); 


    $inputText = file_get_contents($file); 


    $textLines = explode("\n", $inputText); 


    foreach($textLines as $line) { 

    $expLine = explode("\t", $line); 

    if (count($expLine) < 8) { 
     # The line does not have enough items, deal with error 
     //echo "Item " . (isset($expLine[0]) ? $expLine[0]." " : "") . "ignored    because of errors\n"; 
     continue; 
    } 
    //Here [] 
    $finalResult[] = array( 
     "title" =>$expLine[0], 
     "author"  => $expLine[1], 
     "isbn"  => $expLine[2], 
     "hardcover" => $expLine[3], 
     "hc-quantity" => $expLine[4], 
     "softcover" => $expLine[5], 
     "sc-quantity" => $expLine[6], 
     "e-book"  => $expLine[7], 

    ); 
    //$arr=$finalResult; 
    //print_r($arr);   
    } 
    return $finalResult; 
    } 
+0

这将返回一个索引数组的数组? – ZBerg

+0

它返回你构建的所有数组..你可以print_r返回值并检查出:) – HoangHieu

-2

正如我在评论上述

function readData($file){ 

    $arr   = array(); 
    $finalResult = array(); 
    $inputText = file_get_contents($file); 
    $textLines = explode("\n", $inputText); 

    foreach($textLines as $line) { 
     $expLine = explode("\t", $line); 
     if (count($expLine) < 8) { 
      # The line does not have enough items, deal with error 
      //echo "Item " . (isset($expLine[0]) ? $expLine[0]." " : "") . "ignored    because of errors\n"; 
      continue; 
     } 
     $finalResult = array(
      "title" =>$expLine[0], 
      "author"  => $expLine[1], 
      "isbn"  => $expLine[2], 
      "hardcover" => $expLine[3], 
      "hc-quantity" => $expLine[4], 
      "softcover" => $expLine[5], 
      "sc-quantity" => $expLine[6], 
      "e-book"  => $expLine[7], 
     ); 
     $arr=array_merge($arr, $finalResult); 
    } 

    return $arr; 
}