-1

我正在尝试创建一个会话变量并将数组中的值分配给该会话变量。我怎样才能做到这一点。我正在创建如下所示,但我无法让它完全正常运行。

$post = Zend_Controller_Front::getInstance()->getRequest()->getParam('key');
$searches = new Zend_Session_Namespace('searches');
$parthis= $searches->partssearched;
if(!is_array($parthis)){
    $parthis->toArray();
    $parthis[0]=$post;
} else {

$count= sizeof($parthis)."<br>";
if ($this->rows ) {
    if ($count==0) {$parthis[0]=$post;}
    //$searches[$count]=$this->rows;
    echo $parthis[0]."HERE";
} else {
    $parthis[$count]=$post;
    foreach($parthis as $hist) {
        echo $hist;
    }

}
}

$this->rows来自控制器,它携带数据库查询结果。

我在这里想要做的是我想将 Get 值存储到一个会话变量中,将它作为一个数组携带。

应该就像$parthis= array (value1, value2, value3); 每次用户在 url 中传递一个值时,它都应该加起来。

谢谢

4

2 回答 2

0

你可以像下面这样使用

$this->objSess = new Zend_Session_Namespace('searches');

$details[$ItemID]=array(
    'itmeid'=>$ItemID,
    'itemname'=>$itemname['ItemName'],
    'qty'=>$Quantity,
    'price'=>$Price,
    'originalprice'=>$itemname['OriginalPrice'],
    'saveprice'=>number_format($itemname['OriginalPrice']*$Quantity,2),
        'restaurantid'=>$RestaurantID,
    'Conversionsymbol'=>$conversionsymbol,
    'ConversionRate'=>$currencyrate,
    );

$this->objSess->ORDERITEMS=$details;    

或者您也可以使用其他方式

$this->objSess->ORDERITEMS[$ItemID]['qty']=$details[$ItemID]['qty'];
$this->objSess->ORDERITEMS[$ItemID]['price']=$details[$ItemID]['price'];

希望这对你有帮助

于 2013-09-19T05:48:05.273 回答
0

我认为您正在尝试这样做。

$key = Zend_Controller_Front::getInstance()->getRequest()->getParam('key');
$searches = new Zend_Session_Namespace('searches');
if (!is_array($searches->partssearched)) {
    $searches->partssearched = array($key);
} else {
    array_push($searches->partssearched, $key);
}

这将创建和更新您的数组,您可以通过以下方式查看它print_r($searches->partssearched);

如果你在一个动作中写这个,你可以使用它而不是第一行。

$key = $this->getRequest()->getParam('key');
于 2013-09-19T17:05:38.917 回答