在关联数组中设置输入然后遍历条目

时间:2015-06-04 08:31:21

标签: php arrays

我有一个由用户输入填充的关联数组。然后我将该数组设置为会话变量,以便每次输入新输入时都可以在数组顶部添加。

  

警告:为foreach()提供的参数无效

<?php session_start(); ?>

<h1>
    <?php 
        foreach ($_SESSION['formOneArrayGlobal'] as $x => $xValue) {
            echo $x . $xValue;
        }
    ?>
</h1>
<form action="send.php" method="post" name="form-one">
    <input type="text" name="name">
    <input type="text" name="number">
    <button type="submit">Submit</button>
</form>

<?php
    session_start();
    try {
        if (!empty($_POST['form-one'])) {
            $variableOne = $_POST['name'];
            $variableTwo = $_POST['number'];

            $formOneArray[$variableOne] = $variableTwo;

            $_SESSION['formOneArrayGlobal'] = $formOneArray;

    } catch(Exception $e) {
        echo $e;
    }
?>

2 个答案:

答案 0 :(得分:1)

如果$_SESSION['formOneArrayGlobal']

中没有数据,您必须先进行检查
 if(isset($_SESSION['formOneArrayGlobal']) && !empty($_SESSION['formOneArrayGlobal'])){ 
             foreach ($_SESSION['formOneArrayGlobal'] as $x => $xValue) {
                echo $x . $xValue;
            }
    }

答案 1 :(得分:0)

我宁愿直接检查你存储的变量的值是否真的是一个数组。只检查它是否为空并不能真正帮助你,如果它是一个字符串,例如你仍然会得到你的警告。

if (is_array($_SESSION['formOneArrayGlobal'])) {
    foreach ($_SESSION['formOneArrayGlobal'] as $x => $xValue) {
        echo $x . $xValue;
    }
}