php
1<?php 2 3if (isset($_POST['hyouka'])){ 4$hyouka = $_POST['hyouka']; 5$log1 = filter_input(INPUT_POST,"a",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 6 7echo $hyouka."<br>"; 8 9$file_name = "log.txt"; /*読込ファイルの指定*/ 10$log0 = file( $file_name ); /*ファイルを全て配列に入れる*/ 11 12for($i = 0 ; $i < count($log0); $i++){ 13$log2[$i] = explode(",",$log0[$i]); 14} 15 16echo $log2[$hyouka][0]."<br>"; 17echo $log2[$hyouka][10]."<br>"; 18$log2[$hyouka][10]++; 19 20$str = ''; 21foreach($log2 as $card){ 22$str .= implode(',', $card); 23} 24 25$a = fopen("log.txt", "w"); 26fwrite($a, "$str"); 27fclose($a); 28} 29 30?>
log.txt
10,1,1,2,3,4,5,6,70,8,9
1,10,1,2,3,4,5,60,7,8,9
1,1,10,2,3,4,50,6,7,8,9
1,1,1,20,3,40,5,6,7,8,9
1,1,1,2,30,4,5,6,7,8,9
出力結果
1
1
9
log.txtの、$hyouka行目の、10列目の値を1増やしたいのですが、
一切変化がありません、どうすれば良いのでしょう、
キャスト等する必要があるのでしょうか・・・。
また、file_put_contents()でも上書きできるとのことで、それなら
$a = fopen("log.txt", "w");
fwrite($a, "$str");
fclose($a);
}
の代わりにfile_put_contents()を使いたいです。
長々と書きましたが、本質は、「配列のある要素の値を増やす」方法になります、それがうまくいきませんが・・・。
php
1if (isset($_POST['hyouka'])){ 2$hyouka = $_POST['hyouka']; 3$log1 = filter_input(INPUT_POST,"a",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 4 5var_dump($hyouka); 6echo "<p>"; 7 8var_dump($log1); 9echo "<p>"; 10 11$file_name = "log.txt"; /*読込ファイルの指定*/ 12$log0 = file( $file_name ); /*ファイルを全て配列に入れる*/ 13 14var_dump($log0); 15echo "<p>"; 16 17for($i = 0 ; $i < count($log0); $i++){ 18$log2[$i] = explode(",",$log0[$i]); 19} 20 21var_dump($log2); 22echo "<p>"; 23 24$log2[$hyouka][10]++; 25 26var_dump($log2); 27echo "<p>"; 28 29$str = ''; 30foreach($log2 as $card){ 31$str .= implode(',', $card); 32} 33 34var_dump($str); 35echo "<p>"; 36 37file_put_contents("log.txt",$str); 38 39 40}
とした時の出力結果が、以下になります。
string(2) "10"
array(5) { [0]=> array(11) { [0]=> string(1) "1" [1]=> string(2) "10" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(2) "60" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(3) "9 " } [1]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(2) "20" [4]=> string(1) "3" [5]=> string(2) "40" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(3) "9 " } [2]=> array(11) { [0]=> string(2) "10" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(2) "70" [9]=> string(1) "8" [10]=> string(3) "9 " } [3]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(2) "10" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(2) "50" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(3) "9 " } [4]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(2) "30" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(1) "9" } }
array(5) { [0]=> string(24) "10,1,1,2,3,4,5,6,70,8,9 " [1]=> string(24) "1,10,1,2,3,4,5,60,7,8,9 " [2]=> string(24) "1,1,10,2,3,4,50,6,7,8,9 " [3]=> string(24) "1,1,1,20,3,40,5,6,7,8,9 " [4]=> string(22) "1,1,1,2,30,4,5,6,7,8,9" }
array(5) { [0]=> array(11) { [0]=> string(2) "10" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(2) "70" [9]=> string(1) "8" [10]=> string(2) "9 " } [1]=> array(11) { [0]=> string(1) "1" [1]=> string(2) "10" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(2) "60" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [2]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(2) "10" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(2) "50" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [3]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(2) "20" [4]=> string(1) "3" [5]=> string(2) "40" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [4]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(2) "30" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(1) "9" } }
array(6) { [0]=> array(11) { [0]=> string(2) "10" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(2) "70" [9]=> string(1) "8" [10]=> string(2) "9 " } [1]=> array(11) { [0]=> string(1) "1" [1]=> string(2) "10" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(2) "60" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [2]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(2) "10" [3]=> string(1) "2" [4]=> string(1) "3" [5]=> string(1) "4" [6]=> string(2) "50" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [3]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(2) "20" [4]=> string(1) "3" [5]=> string(2) "40" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(2) "9 " } [4]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "1" [2]=> string(1) "1" [3]=> string(1) "2" [4]=> string(2) "30" [5]=> string(1) "4" [6]=> string(1) "5" [7]=> string(1) "6" [8]=> string(1) "7" [9]=> string(1) "8" [10]=> string(1) "9" } [10]=> array(1) { [10]=> int(1) } }
string(119) "10,1,1,2,3,4,5,6,70,8,9 1,10,1,2,3,4,5,60,7,8,9 1,1,10,2,3,4,50,6,7,8,9 1,1,1,20,3,40,5,6,7,8,9 1,1,1,2,30,4,5,6,7,8,91"
log.txtは、元は、
10,1,1,2,3,4,5,6,70,8,9
1,10,1,2,3,4,5,60,7,8,9
1,1,10,2,3,4,50,6,7,8,9
1,1,1,20,3,40,5,6,7,8,9
1,1,1,2,30,4,5,6,7,8,9
実行後は、
10,1,1,2,3,4,5,6,70,8,9
1,10,1,2,3,4,5,60,7,8,9
1,1,10,2,3,4,50,6,7,8,9
1,1,1,20,3,40,5,6,7,8,9
1,1,1,2,30,4,5,6,7,8,91
です。
やはりキャストが原因だったっぽくて、
php
1$log2[$hyouka][10] = (int)$log2[$hyouka][10]+1;
とすると、数値は増えました、もっと良い方法あったら教えて下さい
あと、数値は増えたんですが、この場合は別に改行コードを、このあとにつける必要があるようです、
そこで、
$log2[$hyouka][10] = (int)$log2[$hyouka][10]+1.PHP_EOL;
としたのですが、このような使い方はできずエラーになります、どのように改行コードをつければ良いのでしょうか。
takashimaさんの言うように、
$log2[$hyouka][10] = ((int)$log2[$hyouka][10]+1). PHP_EOL;
としたらできました・・・!
回答1件
あなたの回答
tips
プレビュー