我想在數組的一個鍵中包含多個鍵。我嘗試了以下語法:<?phpfor($i = 0 ; $i < 3 ; $i++){ $str = 'name'.$i; if ($i == 0){ $date = 'today'; } elseif ($i == 1){ $date = 'yesterday'; } else{ $date = 'tomorrow'; } if ($date == "yesterday"){ $arr[] = ["user" => $str, "time" => '2020-10-2']; } elseif ($date == "today"){ $arr[] = ["user" => $str, "time" => '2020-10-3']; } elseif ($date == "tomorrow"){ $arr[] = ["user" => $str, "time" => '2020-10-4']; }}print_r($arr);但結果數組似乎只有一個元素。Array( [0] => Array ( [user] => name1 [time] => 2020-10-2 ))我不知道發生了什么事。感謝幫助。更新: 我分享這個是因為上面的代碼顯然沒有顯示我遇到的問題。這是實際的代碼:<?php$txt_file = fopen('path.txt', 'r');$date = strtotime(fgets($txt_file));$arr = [];for($i = 0 ; !feof($txt_file) ; $i++){ $str = explode(':', fgets($txt_file)); if (count($str) != 2){ continue; } if ($str[1] == "yesterday"){ $arr[] = ["user" => $str[0], "time" => date("Y-m-d", $date-3600*24)]; } elseif ($str[1] == "today"){ $arr[] = ["user" => $str[0], "time" => date("Y-m-d", $date)]; } elseif ($str[1] == "tomorrow"){ $arr[] = ["user" => $str[0], "time" => date("Y-m-d", $date+3600*24)]; }}file_put_contents("INFO.json", json_encode($arr));fclose($txt_file);路徑.txt 包含:3 October 2005quera1:todayquera2:tomorrowquera3:yesterdayquera4:today最終的 INFO.json 文件是:[{"user":"quera4","time":"2005-10-03"}]它只有最后一個元素。
1 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
讀取文件時fgets()
將包含輸入中的新行,因此在嘗試將其與文本進行比較時會出現尾隨新行。用于trim()
刪除任何多余的字符...
$str = explode(':', trim(fgets($txt_file)));
- 1 回答
- 0 關注
- 112 瀏覽
添加回答
舉報
0/150
提交
取消