我正在尝试实例化一个关联数组,然后在第二次调用中,在一个块线上分配它的各种其他值集。我想按照与实例化中相同的形式来做:
"variable" = > 'value';
我的实例是:
$post_values = array(
"x_login" => "API_LOGIN_ID",
"x_tran_key" => "TRANSACTION_KEY",
);
我想补充:
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",
"x_state" => "WA",
"x_zip" => "98004"
我有什么选择?也许有一个array_push用法,我不知道如何更轻松地添加多个值?或者我是否被卡住了,每次调用都添加值,比如:
$post_values['x_version']='3.1';
....
$post_values['x_zip']='98004';
是否有其他优雅的方式来添加多个值到一个关联数组在一行?
试试这个:
$post_values = array(
"x_login" => "API_LOGIN_ID",
"x_tran_key" => "TRANSACTION_KEY",
);
$array2 = array(
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",
"x_state" => "WA",
"x_zip" => "98004"
);
$result = $post_values + $array2;
注意:如果键已经存在于$post_values中,则不会被覆盖。
为了保持简洁美观,在本例中,您最好使用array_merge()
我个人在我的类文件的顶部声明任何数组,为了使它们全局可访问,只是因为我倾向于保持方法免于数组声明(我猜是OCD !)
对于我来说,我有一个例子可能会对你有所帮助,当需要将两个数组添加/合并在一起时,它对我有用:
protected $array1 = array (
'basic' => '1',
'example' => '2',
'for' => '3'
);
protected $array2 = array(
'merging' => '4',
'two' => '5',
'associative' => '6',
'arrays' => '7',
'mate' => '8'
);
然后在你的类文件中,你可以使用这些数组或任何创建的数组,并在你想要的时候合并:
public function ExampleOne()
{
$firstArray = $this->array1;
print_r($firstArray);
$secondArray = $this->array2;
print_r($secondArray);
$merged = array_merge($firstArray, $secondArray);
print_r($merged);
}
每个print_r()将在data/created数组的控制台中为您提供一个打印输出。这样,您就可以自己查看所有内容都已正确创建,并且每个键都有其相关值(查看PHP手册页以获得print_r()的明确解释)。
那么,第一个数组将/应该显示这个:
Array
(
[basic] => 1
[example] => 2
[for] => 3
)
第二个数组将/应该显示:
Array
(
[merging] => 4
[two] => 5
[associative] => 6
[arrays] => 7
[mate] => 8
)
和array_merge()操作将创建最终数组,它将/应该显示如下:
Array
(
[basic] => 1
[example] => 2
[for] => 3
[merging] => 4
[two] => 5
[associative] => 6
[arrays] => 7
[mate] => 8
)
当然,你不必总是在类文件的顶部放置/创建数组,当需要时,你可以在单个函数中创建数组,如果它们只在其中需要/使用-我在这里展示的只是我最近在工作中的一个项目所做的事情(这些数组中的数据当然是示例数据!)
array_push()
将接受一个数组被压入。
但array_merge()
可能更符合您的要求。
可以尝试使用以下函数:array_merge
如果要在循环中合并数组,也可以使用扩展操作符,这样速度更快:
$post_values = [
"x_login" => "aaa",
"x_tran_key" => "bbb",
];
$dataToAdd = [
"foo" => "abc",
"bar" => "def",
];
$result = [
...$post_values,
...$dataToAdd
];
print_r($result);
结果为:
Array
(
[x_login] => aaa
[x_tran_key] => bbb
[foo] => abc
[bar] => def
)