2016-09-19 7 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} sammpleとあなたは$ arr = $ finalResultを持っています。配列マージを使用してそれらを一緒に追加する – ZBerg

答えて

0

こんにちはあなたのマッシュマージまたは参照finalResult $に配列をプッシュする

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; 
} 
関連する問題