尝试在 table 中显示数组内容时出现问题?
Problem trying to display array content in a table?
您好,我遇到了以下问题
这是我的网站现在的样子;
我想显示位于 JSON 文件中数组的 table 中的内容。
我想在 foreach 循环中执行此操作,它工作得很好。
直到我用 array_push 添加一个新的
因为那时我会遇到各种错误
它将为项目添加一个新的行和位置,但由于这些错误,它们不会被填充;
我确定我的 array_push 使用完全相同的密钥将内容添加到 json 文件中,但他们无法识别它。
我自己发现,当我向数组添加一些东西时,它会在它前面添加一个“0”、“1”、“2”等。
当我自己删除数字时,它会在 table 中工作,但它会自动继续将其添加到数组中;
"0":{"Aquaman":{"Naam":"Aquaman","Power1":"Water","Power2":"Vissen","Power3":"Zwemmen","Power4":"Onderwater ademen"}}
我怎样才能阻止它这样做?
或者针对此问题还有哪些其他修复方法?
PHP/HTML;
<?php
// ========== Read an array from a file ===================
// Open the file in 'read' modus
$file = fopen('myfile.json','r');
// Read the JSON array from the file
$aJSONArray = file_get_contents('myfile.json');
// Convert to JSON array back to a PHP array
$arrDCSuperheroes = json_decode($aJSONArray,TRUE);
// Close the file again
fclose($file);
// ========== Add a new value to the array ==============
if(!empty($_POST)) {
$strSuperheldNaam = $_POST['strSuperheldNaam'];
$arrDCSuperheroes2[$strSuperheldNaam] = array();
$arrDCSuperheroes2[$strSuperheldNaam]['Naam'] = $_POST['strSuperheldNaam'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power1'] = $_POST['strPower1'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power2'] = $_POST['strPower2'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power3'] = $_POST['strPower3'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power4'] = $_POST['strPower4'];
array_push($arrDCSuperheroes, $arrDCSuperheroes2);
var_dump($arrDCSuperheroes);
}
// ========== Saving an array to a file =================
// Use JSON to encode the array into a storeable string
$aJSONArray = json_encode($arrDCSuperheroes);
// Open the file in 'write' modus
$file = fopen('myfile.json','w');
// Save the content of the JSON array into the file
file_put_contents('myfile.json', $aJSONArray);
// Close the file
fclose($file);
echo("
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<table border=1 width='90%'>
<tr><th>Naam</th><th>Power 1</th><th>Power 2</th><th>Power 3</th><th>Power 4</th></tr>
");
foreach($arrDCSuperheroes as $arrDCSuperheroesList) {
echo("<tr><td>".$arrDCSuperheroesList['Naam']."</td><td>".$arrDCSuperheroesList['Power1']."</td><td>".$arrDCSuperheroesList['Power2']."</td><td>".$arrDCSuperheroesList['Power3']."</td><td>".$arrDCSuperheroesList['Power4']."</td></tr>");
}
echo(" </table>
<h3>Toevoegen aan array!</h3><hr>
<form method='post'>
Naam: <input type='text' name='strSuperheldNaam'><br/>
Power 1: <input type='text' name='strPower1'><br/>
Power 2: <input type='text' name='strPower2'><br/>
Power 3: <input type='text' name='strPower3'><br/>
Power 4: <input type='text' name='strPower4'><br/><br/>
<input type='submit' value='SUBMIT!'>
</form>
</body>
</html>
");
?>
你不应该在关联数组上使用 array_push
。
假设您希望 json 结构为:
{
"heroName": {
"property": "value"
},
...
}
您只需按名称添加新英雄及其属性,如下所示。您还可以移动逻辑以在 if 语句中保存文件,以确保文件仅在更新时写入,而不是在每次加载页面时写入。
// ...
// Convert to JSON array back to a PHP array
$arrDCSuperheroes = json_decode($aJSONArray,TRUE);
if(!empty($_POST)) {
$strSuperheldNaam = $_POST['strSuperheldNaam'];
$arrDCSuperheroes[$strSuperheldNaam] = [
'Naam' => $_POST['strSuperheldNaam'],
'Power1' => $_POST['strPower1'],
'Power2' => $_POST['strPower2'],
'Power3' => $_POST['strPower3'],
'Power4' => $_POST['strPower4'],
];
// Use JSON to encode the array into a storeable string
$aJSONArray = json_encode($arrDCSuperheroes);
file_put_contents("myfile.json", $aJSONArray);
}
// ...
您好,我遇到了以下问题
这是我的网站现在的样子;
我想显示位于 JSON 文件中数组的 table 中的内容。 我想在 foreach 循环中执行此操作,它工作得很好。 直到我用 array_push 添加一个新的 因为那时我会遇到各种错误
它将为项目添加一个新的行和位置,但由于这些错误,它们不会被填充;
我确定我的 array_push 使用完全相同的密钥将内容添加到 json 文件中,但他们无法识别它。
我自己发现,当我向数组添加一些东西时,它会在它前面添加一个“0”、“1”、“2”等。 当我自己删除数字时,它会在 table 中工作,但它会自动继续将其添加到数组中;
"0":{"Aquaman":{"Naam":"Aquaman","Power1":"Water","Power2":"Vissen","Power3":"Zwemmen","Power4":"Onderwater ademen"}}
我怎样才能阻止它这样做? 或者针对此问题还有哪些其他修复方法?
PHP/HTML;
<?php
// ========== Read an array from a file ===================
// Open the file in 'read' modus
$file = fopen('myfile.json','r');
// Read the JSON array from the file
$aJSONArray = file_get_contents('myfile.json');
// Convert to JSON array back to a PHP array
$arrDCSuperheroes = json_decode($aJSONArray,TRUE);
// Close the file again
fclose($file);
// ========== Add a new value to the array ==============
if(!empty($_POST)) {
$strSuperheldNaam = $_POST['strSuperheldNaam'];
$arrDCSuperheroes2[$strSuperheldNaam] = array();
$arrDCSuperheroes2[$strSuperheldNaam]['Naam'] = $_POST['strSuperheldNaam'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power1'] = $_POST['strPower1'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power2'] = $_POST['strPower2'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power3'] = $_POST['strPower3'];
$arrDCSuperheroes2[$strSuperheldNaam]['Power4'] = $_POST['strPower4'];
array_push($arrDCSuperheroes, $arrDCSuperheroes2);
var_dump($arrDCSuperheroes);
}
// ========== Saving an array to a file =================
// Use JSON to encode the array into a storeable string
$aJSONArray = json_encode($arrDCSuperheroes);
// Open the file in 'write' modus
$file = fopen('myfile.json','w');
// Save the content of the JSON array into the file
file_put_contents('myfile.json', $aJSONArray);
// Close the file
fclose($file);
echo("
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<table border=1 width='90%'>
<tr><th>Naam</th><th>Power 1</th><th>Power 2</th><th>Power 3</th><th>Power 4</th></tr>
");
foreach($arrDCSuperheroes as $arrDCSuperheroesList) {
echo("<tr><td>".$arrDCSuperheroesList['Naam']."</td><td>".$arrDCSuperheroesList['Power1']."</td><td>".$arrDCSuperheroesList['Power2']."</td><td>".$arrDCSuperheroesList['Power3']."</td><td>".$arrDCSuperheroesList['Power4']."</td></tr>");
}
echo(" </table>
<h3>Toevoegen aan array!</h3><hr>
<form method='post'>
Naam: <input type='text' name='strSuperheldNaam'><br/>
Power 1: <input type='text' name='strPower1'><br/>
Power 2: <input type='text' name='strPower2'><br/>
Power 3: <input type='text' name='strPower3'><br/>
Power 4: <input type='text' name='strPower4'><br/><br/>
<input type='submit' value='SUBMIT!'>
</form>
</body>
</html>
");
?>
你不应该在关联数组上使用 array_push
。
假设您希望 json 结构为:
{
"heroName": {
"property": "value"
},
...
}
您只需按名称添加新英雄及其属性,如下所示。您还可以移动逻辑以在 if 语句中保存文件,以确保文件仅在更新时写入,而不是在每次加载页面时写入。
// ...
// Convert to JSON array back to a PHP array
$arrDCSuperheroes = json_decode($aJSONArray,TRUE);
if(!empty($_POST)) {
$strSuperheldNaam = $_POST['strSuperheldNaam'];
$arrDCSuperheroes[$strSuperheldNaam] = [
'Naam' => $_POST['strSuperheldNaam'],
'Power1' => $_POST['strPower1'],
'Power2' => $_POST['strPower2'],
'Power3' => $_POST['strPower3'],
'Power4' => $_POST['strPower4'],
];
// Use JSON to encode the array into a storeable string
$aJSONArray = json_encode($arrDCSuperheroes);
file_put_contents("myfile.json", $aJSONArray);
}
// ...