PHP中多维数组的输出值



我正在学习如何在PHP中使用多维数组,我需要帮助输出值。

我得到的错误是:

警告:第35行C中非法字符串偏移'name' .

我想输出这样的值:

name     quantity  
church   1
下面是我的代码:
<?php
session_start();
if (!isset($_SESSION['images'])) {
   $_SESSION['images'] = array();
}
if (isset($_POST['submit'])) {
$test[]= $_POST['name'];
$test[]= $_POST['qty'];
 $_SESSION['images'][] = $test; 
}
  foreach ($_SESSION['images'] as $nom) {
      foreach ($nom as $val) {
        echo $val["name"];
      }
  }
?>
<!DOCTYPE HTML>
<html>
 <head>
<title>Test Array</title>
    </head>

<body>

  <div id="holder">
<p>You have <?php echo count($_SESSION['images']);?> images</p>
   <div class="test">
<div><img src="images/church.jpg"></div>
<br>
 <form action="multidimention_array.php" method="post">
<input type="hidden" name="name" id="name" value="church">
<input type="text" name="qty" id="qty" size="1" value="1">
<input type="submit" name="submit" id="submit" value="Send Value">
    </form>
      </div>
     <div class="test">
<div><img src="images/stellar.jpg"></div>
<br>
 <form action="multidimention_array.php" method="post">
<input type="hidden" name="name" id="name" value="stellar">
<input type="text" name="qty" id="qty" size="1" value="1">
<input type="submit" name="submit" id="submit" value="Send Value">
    </form>
      </div> 
</div>
   </body>
</html>

问题就在这里:

$test[]= $_POST['name'];

这并不意味着从$_POST中获取键name的值,并将其保存在$test中相同的键下。这意味着从$_POST中获取键name的值,并将其保存在下的第一个空闲键下。在实践中,这意味着它将以键0结束(假设$test开始为空)。所以没有$test['name'],也就没有$_SESSION['images']['name']$val['name'];

你需要使用的代码是:

$test['name'] = $_POST['name'];
$test['qty'] = $_POST['qty'];

$_POST['name']被分配给$test$_SESSION['images'][]的整数索引,所以当你循环时,'name'不作为键存在。

尝试以下操作:

$test['name'] = $_POST['name'];
$test['qty']  = $_POST['qty'];

你为什么要做两个foreach ?第一个将循环遍历会话图像,这是一个包含测试数组的数组。第二个循环遍历测试数组。此时,您已经在$test['name']变量中,因此您正在有效地调用$_SESSION['images'][0]['name']['name']:

尝试以下操作:

foreach ($_SESSION['images'] as $image) {
  echo $image['name'];
}

相关内容

  • 没有找到相关文章

最新更新