Php 将数组逐行存储到txt文件中

Php 将数组逐行存储到txt文件中,php,arrays,file,Php,Arrays,File,我不知道如何将整个数组存储到txt文件中。我的代码只存储foreach循环中最后运行的行 $total_price = 0; foreach($_SESSION['shopping_cart'] as $id => $product) { $product_id = $product['product_id']; $total_price += $products[$product_id]['price'] * $product[

我不知道如何将整个数组存储到txt文件中。我的代码只存储foreach循环中最后运行的行

 $total_price = 0;
        foreach($_SESSION['shopping_cart'] as $id => $product) {
          $product_id = $product['product_id'];

          $total_price += $products[$product_id]['price'] * $product['quantity'];
          echo "<tr>
            <td style='border-bottom:1px solid #000000;'><a href='./PA3.php?view_product=$id'>" . 
              $products[$product_id]['name'] . "</a></td>
            <td style='border-bottom:1px solid #000000;'>$" . $products[$product_id]['price'] . "</td> 
            <td style='border-bottom:1px solid #000000;'>" . $product['quantity'] . "</td>
            <td style='border-bottom:1px solid #000000;'>$" . ($products[$product_id]['price'] * $product['quantity']) . "</td>
            <td style='border-bottom:1px solid #000000;'>" . $products[$product_id]['picture'] . "</td> 
          </tr>";
        }
      echo "</table>
      <p>Total price: $" . $total_price . "</p>";
      $filename='Order'.date('m-d-Y_hia').'.txt';
            file_put_contents($filename, json_encode($dataArray));  
  }
$total_price=0;
foreach($\会话['shopping\ u cart']作为$id=>$product){
$product_id=$product['product_id'];
$total_price+=$products[$product_id]['price']*$products['quantity'];
回声“
$“$products[$product_id]['price']
“$product[‘数量’]”
$”($products[$product_id]['price']*$product['QUOTE'])
“$products[$product_id]['picture']”
";
}
回声“
总价:$”$总价。“

”; $filename='Order'.date('m-d-Y_-hia')。.txt'; 文件内容($filename,json_encode($dataArray)); }

我认为这是因为我在数组内部初始化它,但是当我在数组外部初始化它时,我会得到一个索引错误

试试这样的方法:

 $filename='Order'.date('m-d-Y_hia').'.txt';

 $fh = fopen($filename, 'w');

  $total_price = 0;
    foreach($_SESSION['shopping_cart'] as $id => $product) {
      $product_id = $product['product_id'];

      $total_price += $products[$product_id]['price'] * $product['quantity'];
      echo "<tr>
        <td style='border-bottom:1px solid #000000;'><a href='./PA3.php?view_product=$id'>" . 
          $products[$product_id]['name'] . "</a></td>
        <td style='border-bottom:1px solid #000000;'>$" . $products[$product_id]['price'] . "</td> 
        <td style='border-bottom:1px solid #000000;'>" . $product['quantity'] . "</td>
        <td style='border-bottom:1px solid #000000;'>$" . ($products[$product_id]['price'] * $product['quantity']) . "</td>
        <td style='border-bottom:1px solid #000000;'>" . $products[$product_id]['picture'] . "</td> 
      </tr>";
    }
  echo "</table>
  <p>Total price: $" . $total_price . "</p>";


  foreach($_SESSION['shopping_cart'] as $id => $product) {

     foreach($product as $k=>$v){

      $stringData = $k . ' - ' . $v . "\n";
       fwrite($fh, $stringData);

     }

  }

        //file_put_contents($filename, json_encode($dataArray));  
}


fclose($fh);
$filename='Order'.date('m-d-Y_-hia')。.txt';
$fh=fopen($filename,'w');
$total_price=0;
foreach($\会话['shopping\ u cart']作为$id=>$product){
$product_id=$product['product_id'];
$total_price+=$products[$product_id]['price']*$products['quantity'];
回声“
$“$products[$product_id]['price']
“$product[‘数量’]”
$”($products[$product_id]['price']*$product['QUOTE'])
“$products[$product_id]['picture']”
";
}
回声“
总价:$”$总价。“

”; foreach($\会话['shopping\ u cart']作为$id=>$product){ foreach($k=>v的产品){ $stringData=$k.'-'.$v.\n”; fwrite($fh,$stringData); } } //文件内容($filename,json_encode($dataArray)); } fclose($fh);
最简单的方法是,首先在容器中收集所有值,然后写入文件,不要试图逐行写入。你说“我想这是因为我正在数组中初始化它”,变量是什么?如果你的代码中有$dataArray,你永远不会初始化这个变量。这个很好用,但它只存储通过第一个foreach循环迭代的最后一个值。对不起,昨晚我添加这个时已经很晚了。我更新了我的代码。检查一下,它现在应该可以工作了。