我想将数组推送到现有的会话数组中。我想使用get [id],我希望能够堆叠所有添加的数组,而不是在推送新数组时删除它们。
Bellow是我的代码,我没有得到这个值,而是我得到这个错误---数组到字符串转换。提前致谢。
**CODE
<?php
session_start();
if(empty($_SESSION['animals']))
{
$_SESSION['animals']=array();
}
// push array
array_push($_SESSION['animals'], array ( 'id' => "".$_GET['id'].""));
foreach($_SESSION['animals'] as $key=>$value)
{
// and print out the values
echo $key;
echo $value;
}
?>
答案 0 :(得分:1)
使用您的代码,这就是$ _SESSION的样子:
array (size=1)
'animals' =>
array (size=1)
0 =>
array (size=1)
'id' => string 'test' (length=4)
在您的代码中:
foreach($_SESSION['animals'] as $key=>$value)
key
将包含0
,value
将包含array('id' => 'test')
。由于value
是一个数组,因此不能像这样回应它。
如果你想要回应每只动物的所有特征,这段代码将起作用:
<?php
session_start();
if(empty($_SESSION['animals']))
{
$_SESSION['animals'] = array();
}
// push array
array_push($_SESSION['animals'], array ( 'id' => "".$_GET['id'].""));
// We go through each animal
foreach($_SESSION['animals'] as $key=>$animal)
{
echo 'Animal n°'.$key;
// Inside each animal, go through each attibute
foreach ($animal as $attribute => $value)
{
echo $attribute;
echo $value;
}
}