我遇到了一个会话多维数组的问题,我正在尝试添加值。我被告知我应该在“之前”开始添加值之前说明数组,但是当我这样做时,数组被视为普通数组而不是会话。因此,这对我的情况不起作用。同时,代码错误破坏了我的代码。我不知道如何解决这个问题。
以下是导致错误消息的代码行
警告:不能将标量值用作数组
(当然我有比这更多的代码,这些只是影响问题的行):
PHP:
for($i=0; $i < count($_POST['part_number']); $i++) {
$_SESSION['qty'][$i] = $_POST['qty'][$i];
}
HTML:
<input type="text" value="1" name="qty[0]" size="2" />
答案 0 :(得分:1)
最有可能的是,$_SESSION['qty']
或$_POST['qty']
不是数组。试试这个:
if(!isset($_SESSION['qty']) || !is_array($_SESSION['qty'])) $_SESSION['qty'] = array();
if(!is_array($_POST['qty'])) throw new Exception('Error: $_POST[\'qty\'] is not an array!');
for($i=0; $i < count($_POST['part_number']); $i++) {
if(!isset($_POST['qty'][$i])) continue;
$_SESSION['qty'][$i] = $_POST['qty'][$i];
}