指定した行を削除しようとしています。
削除前はこのように入っており
CSV
11,Mike,Mike@gmail.com,hello 22,John,John@gmail.com,hello 33,Peter,Peter@gmail.com,hello 44,Sam,Sam@gmail.com,hello
もし2行目の2,John,John@gmail.com,helloを削除しよう値すると
$new_data[]に2行目以外の行が入っているのは確認しています。
それをvar_dump($new_data)で確認すると
array(3)
{[0]=> array(4){[0]=> string(1) "1" [1]=> string(4) "Mike" [2]=> string(14) "Mike@gmail.com" [3]=> string(5) "hello " }
[1]=> array(4) {[0]=> string(1) "3" [1]=> string(5) "Peter" [2]=> string(15) "Peter@gmail.com" [3]=> string(5) "hello " }
[2]=> array(4) {[0]=> string(1) "4" [1]=> string(3) "Sam" [2]=> string(13) "Sam@gmail.com" [3]=> string(16) "hello" } }
と入力されています。
削除の考え方で行くと
この後に、CSVファイルへ書き込むという認識で良いのでしょうか?
また、下記のPHPコードで行ってみると
Array to String Conversion in fwrite($fp, "\n".$result);
となってしまいます。
お手数ですが、対処方法のご教授よろしくお願いいたします。
PHP
1<?php 2 session_start(); 3 $filename = 'Board.csv'; 4 5 if($_SERVER['REQUEST_METHOD'] === 'POST'){ 6 $delete_id = $_POST['delete_id']; 7 //var_dump($delete_id); 8 if (is_readable($filename) === TRUE){ 9 if (($fp = fopen($filename,'r+')) !== FALSE){ 10 $count = 1; 11 while (($tmp = fgets($fp)) != FALSE){ 12 $data = $tmp; 13 if($delete_id != $count){ 14 $new_data[] = $data; 15 } 16 $count++; 17 } 18 foreach($new_data as $line){ 19 $result[] = explode(',',$line); 20 fwrite($fp, "\n".$result); 21 } 22 var_dump($result); 23 fclose($fp); 24 } 25 } 26 } 27?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。