Php 数组索引中的新行

Php 数组索引中的新行,php,arrays,opencart,Php,Arrays,Opencart,在我们定制的旧版本opencart中,从购物车中移除某些物品时遇到问题。在我们的网站中,购物车作为如下数组存储在会话中: [product_id:options] => $quantity 问题似乎是部分选项数据包含新行,这意味着会话数据如下所示 Array ( [808: yyuu .3959: yyuu .3959] => 1 ) 当客户尝试删除产品时,会将密钥发送到服务器,但找不到阵列密钥 808: yyuu .3959: yyuu .3959 作为索引

在我们定制的旧版本opencart中,从购物车中移除某些物品时遇到问题。在我们的网站中,购物车作为如下数组存储在会话中:

[product_id:options] => $quantity
问题似乎是部分选项数据包含新行,这意味着会话数据如下所示

Array
(
    [808: yyuu

.3959: yyuu

.3959] => 1
)
当客户尝试删除产品时,会将密钥发送到服务器,但找不到阵列密钥

808: yyuu

.3959: yyuu

.3959
作为索引


可以将新行字符用作数组索引吗?

您可以选择将其更改为当前行为-选项不再以可读方式(数组)显示,而是编码为
Base64
,如下所示(
system/library/cart.php::add()
,OC v.1.5.5.1):

然后,购物车中带有选项的产品密钥如下所示

123:SDFD/GHDS%RFW$ET35和TSF^WRT3@5YIWFHLDSFW/ETE4=

然后可通过以下代码从该密钥获得编码选项:

$product = explode(':', $key);
$product_id = $product[0];

// Options
if (isset($product[1])) {
    $options = unserialize(base64_decode($product[1]));
} else {
    $options = array();
}
这些更改可能必须通过系统库
Cart
在更多地方实施


现在在数组中查找这些键应该不会有问题,因为它永远不会包含白色字符(
\n\r\t\s
)。

这是什么版本的OC?它看起来真的很老。。。
$product = explode(':', $key);
$product_id = $product[0];

// Options
if (isset($product[1])) {
    $options = unserialize(base64_decode($product[1]));
} else {
    $options = array();
}