推送关联数组中的数组键和值

时间:2015-11-16 14:42:10

标签: php arrays session

我想将数组推送到现有的会话数组中。我想使用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;
    }
?>

1 个答案:

答案 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将包含0value将包含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;

    }
}