1

我在使用 array_push 时遇到问题。它正在显示"Parse error: syntax error, unexpected T_DOUBLE_ARROW"变量 $vars 是贝宝的关联数组。

array_push($vars,
'item_number'.$num => $id,
'item_name'.$num => $cart_item->name,
'amount_'.$num => $cart_item->discount_price,
'quantity_'.$num => $value);



$vars = array (
'cmd' => '_cart',
'charset' => 'utf-8',
'upload' => '1',
'currency_code' => 'HKD',
'amount' => $_SESSION['total'],
'custom' => $user_data->id)
4

3 回答 3

1

=>语法仅在定义数组时有效。array_push只能用于推送带有自动递增数字键的元素。

也许你可以使用array_mergehttp ://www.php.net/manual/en/function.array-merge.php

$vars = array_merge( $vars, array(
    'item_number'.$num => $id,
    'item_name'.$num => $cart_item->name,
    'amount_'.$num => $cart_item->discount_price,
    'quantity_'.$num => $value
));

或者您可以使用运算符,认为它的行为与 PHP 中数组的: + 运算符+完全不同?array_merge

$vars =  $vars + array(
    'item_number'.$num => $id,
    'item_name'.$num => $cart_item->name,
    'amount_'.$num => $cart_item->discount_price,
    'quantity_'.$num => $value
);
于 2012-07-01T07:52:25.060 回答
1

来自php手册:

如果您打算array_push()将一"key" => "value" 对插入数组中,可以使用以下方法完成:

$data[$key] => $value;

没有必要使用 array_push

于 2012-07-01T07:54:41.043 回答
0

您正在将一个数组推入堆栈,因此您的代码应该反映这一点

array_push($vars, array(
                     'item_number'.$num => $id,
                     'item_name'.$num => $cart_item->name,
                     'amount_'.$num => $cart_item->discount_price,
                     'quantity_'.$num => $value
                  )
);
于 2012-07-01T07:51:17.140 回答