我制作一个事件列表,最多包含4个事件,并保存在自己的jason文件中。
我为输出编写了这段代码。
JSON:
{“ field1”:“纽约”,“ field2”:“ 1553404200”,“ field3”:1554415200}
代码:
$jsonA = file_get_contents('code/data1.json');
$fieldsA = json_decode($jsonA, true);
$cityA = $fieldsA["field1"];
$dateStartA = $fieldsA["field2"];
$dateEndA = $fieldsA["field3"];
$jsonB = file_get_contents('code/data2.json');
$fieldsB = json_decode($jsonB, true);
$cityB = $fieldsB["field1"];
$dateStartB = $fieldsB["field2"];
$dateEndB = $fieldsB["field3"];
<div><?php echo $cityA . $dateStartA . " - " . $dateEndA?></div>
<div><?php echo $cityB . $dateStartB . " - " . $dateEndB?></div>
问题是:
我有4个事件,每个开始和结束日期。所以我必须做8次相同的操作,但我不希望并且应该将此代码复制8次并使用较高的变量名... 在我的项目中,我有13个字段以及2个数组以我的语言输出日期和月份名称。这就是为什么不复制所有内容8次如此重要。 我需要一个循环,但我不知道具体如何。我是一个绝对的初学者,所以请尽可能简单。
答案 0 :(得分:0)
出色的尝试!
您可能只想编写一个foreach并读取文件并将其存储在数组中。
在本地服务器中,您可能只想找到code
文件夹的绝对路径。如果打开终端,并在终端中打开 CTRL + C 代码目录和 CTRL + V ,则可能看看您的绝对路径是什么样子。然后,粘贴到$server_path
中的代码目录之前。然后,运行代码,希望它能工作。
function searchFilenames($array, $re)
{
return preg_grep('/' . preg_quote($re, '/') . '/i', $array);
}
$server_path = '/path/to/your/localserver/';
$dir = $server_path . 'code';
$filename_array = searchFilenames(glob($dir . "/*"), 'data');
$fields = array();
foreach ($filename_array as $key => $filename) {
$jsonA = file_get_contents($filename);
$values = json_decode($jsonA, true);
$fields[$key]["city"] = $values["field1"];
$fields[$key]["dateStart"] = $values["field2"];
$fields[$key]["dateEnd"] = $values["field3"];
}
var_dump($fields);
array(8) {
[0]=>
array(3) {
["city"]=>
string(8) "new york"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[1]=>
array(3) {
["city"]=>
string(6) "boston"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[2]=>
array(3) {
["city"]=>
string(7) "chicago"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[3]=>
array(3) {
["city"]=>
string(13) "washington dc"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[4]=>
array(3) {
["city"]=>
string(5) "miami"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[5]=>
array(3) {
["city"]=>
string(10) "los angles"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[6]=>
array(3) {
["city"]=>
string(7) "seattle"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
[7]=>
array(3) {
["city"]=>
string(6) "austin"
["dateStart"]=>
string(10) "1553404200"
["dateEnd"]=>
int(1554415200)
}
}