我有ff代码,它将在表单文本字段中输入的值存储到会话数组中,我将其命名为" numbers"。我需要显示数组的值,但每次尝试Array to string conversion in
时都会出现错误echo var_dump($value);
我使用<?php
session_start();
?>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="index.php">
<label>Enter a number</label>
<input type="text" name="num" required />
<button type="submit">Submit</button>
</form>
</body>
</html>
<?php
if (isset($_POST["num"]) && !empty($_POST["num"])){
$_SESSION['numbers'][] = $_POST["num"];
foreach($_SESSION as $key => $value){
echo ($value);
}
}
?>
并验证所有输入的值都存储在会话数组中。
我的目标是每次用户点击提交按钮时将用户输入存储到数组中。
我该如何纠正?
{{1}}
谢谢。
答案 0 :(得分:1)
执行$_SESSION['numbers'][] = $_POST["num"];
时,您正在使$_SESSION['numbers']
成为一个数组:所以您需要采用不同的方式,或者检查foreach循环中的$value
是否为数组。
if (isset($_POST["num"]) && !empty($_POST["num"])){
$_SESSION['numbers'][] = $_POST["num"];
foreach($_SESSION as $key => $value){
if (is_array($value)) {
foreach ($value as $valueNested) {
echo ($valueNested);
}
} else {
echo ($value);
}
}
}
OR
if (isset($_POST["num"]) && !empty($_POST["num"])){
$_SESSION['numbers'] = $_POST["num"];
foreach($_SESSION as $key => $value){
echo ($value);
}
}
后者可能就是你实际想要完成的事情。
答案 1 :(得分:0)
错误是因为SESSION [“numbers”]是一个数组,你可以只回显一个数组。它会抛出一个错误“Array to string converstion”。
遍历数组并打印出来。
答案 2 :(得分:0)
如果您想回显所有输入的数字,则每个周期应为:
foreach($_SESSION[‘numbers’] as $key => $value) {
echo $value;
}
这是因为$ _SESSION ['numbers']本身就是包含数字的数组。