Я хочу иметь несколько ключей в одном ключе массива. Я пробовал использовать следующий синтаксис:
<?php
for($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);
path.txt содержит:
3 October 2005
quera1:today
quera2:tomorrow
quera3:yesterday
quera4:today
и последний INFO. json файл:
[{"user":"quera4","time":"2005-10-03"}]
it имеет только последний элемент.