无法推送数组键和值

时间:2015-11-17 15:06:02

标签: php arrays session

我有一个名为animal.php的页面,其中包含动物名称列表,每个动物名称旁边都有一个按钮。单击任何按钮时,用户将被发送到showanimal.php,其中动物名称显示为$ value,$ key自动递增。我正在使用foreach循环显示它,以便我可以显示每个动物点击的所有动物的名称。

问题是,我补充说" size => "到get [id]旁边的array_push,这样我就可以设置自己的密钥而不是自动增加的密钥。但是我收到一个错误说""。语法错误,意外' =>' (T_DOUBLE_ARROW)在第10行,也就是这行。

第10行

array_push($_SESSION['animals'],    "size" => "".$_GET['id']."" );

我必须设置一个不自动递增的密钥,因为我需要稍后更新每个密钥。我怎么能解决这个问题令人沮丧,因为它没有推送阵列......

先谢谢,下面是我的完整代码!

animal.php

    <div class="product">
    <h3>BIRD</h3>
    <a href="showanimal.php?id=bird">Add animal</a>
</div>

<div class="product">
    <h3>DOG</h3>
<a href="showanimal.php?id=dog">Add animal</a>
</div>

<div class="product">
    <h3>LION</h3>
    <a href="showanimal.php?id=lion">Add animal</a>
</div>

showanimal.php

    <?php
session_start();

if(empty($_SESSION['animals']))
{
$_SESSION['animals'] = array();
}

// push array using get id as KEY and size as VALUE.
    // getting error on the line bellow " unexpected '=>' (T_DOUBLE_ARROW)"
array_push($_SESSION['animals'],    "size" => "".$_GET['id']."" );

// We go through each animal
foreach($_SESSION['animals'] as $key=>$value)
{   
echo "the key is :::::::: " . $key;
echo "<BR/>";
echo "the value is :::::::: " . $value;
echo "<BR/>";
echo "---------------------------------";
echo "<BR/>";
}
?>

1 个答案:

答案 0 :(得分:1)

你应该尝试:

$_SESSION['animals']['size'] = $_GET['id'];

merging

$_SESSION['animals'] = array_merge( $_SESSION['animals'], 
    array( 'size' => $_GET['id'] ) );

union

$_SESSION['animals'] += array( 'size' => $_GET['id'] );