Viv*_*asT 8 php arrays associative
我正在尝试实例化一个关联数组,然后在第二次调用中,在一个块行上为它分配各种其他值集.我想按照与实例化相同的形式执行此操作:
"variable" = > 'value';
Run Code Online (Sandbox Code Playgroud)
我的实例是:
$post_values = array(
"x_login" => "API_LOGIN_ID",
"x_tran_key" => "TRANSACTION_KEY",
);
Run Code Online (Sandbox Code Playgroud)
我想补充一下:
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",
"x_state" => "WA",
"x_zip" => "98004"
Run Code Online (Sandbox Code Playgroud)
我有什么选择?也许有一个array_push用法,我不知道要更轻松地添加多个值?或者我是不是每次通话增加价值,如:
$post_values['x_version']='3.1';
....
$post_values['x_zip']='98004';
Run Code Online (Sandbox Code Playgroud)
有没有其他优雅的方法可以在一行中为关联数组添加多个值?
试试这个:
$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;
Run Code Online (Sandbox Code Playgroud)
但是请注意:如果密钥已经存在于$ post_values中,则不会被覆盖.
小智 6
为了保持事情的美好和干净,在这种情况下,简单,你最好使用array_merge( )
我个人在类文件的顶部声明任何数组,以便使它们可以全局访问,只是因为我倾向于使方法不包含数组声明(我猜是强迫症!)
因此,对我来说,我有一个可能对您有帮助的示例,当需要将两个数组添加/合并在一起时,它对我有用:
protected $array1 = array (
'basic' => '1',
'example' => '2',
'for' => '3'
);
protected $array2 = array(
'merging' => '4',
'two' => '5',
'associative' => '6',
'arrays' => '7',
'mate' => '8'
);
Run Code Online (Sandbox Code Playgroud)
然后在类文件中,您可以使用这些数组或任何创建的数组,并在需要时进行合并:
public function ExampleOne()
{
$firstArray = $this->array1;
print_r($firstArray);
$secondArray = $this->array2;
print_r($secondArray);
$merged = array_merge($firstArray, $secondArray);
print_r($merged);
}
Run Code Online (Sandbox Code Playgroud)
每个 print_r( ) 都会在数据/创建的数组的控制台中为您提供打印输出。这样您就可以自己查看所有内容都已正确创建,并且每个键都有其关联的值(请检查 PHP 手册页以获取print_r( )的明确解释)。
因此,第一个数组将/应该展示这一点:
Array
(
[basic] => 1
[example] => 2
[for] => 3
)
Run Code Online (Sandbox Code Playgroud)
第二个数组将/应该展示这一点:
Array
(
[merging] => 4
[two] => 5
[associative] => 6
[arrays] => 7
[mate] => 8
)
Run Code Online (Sandbox Code Playgroud)
array_merge() 操作将创建最终的数组,它将/应该展示这一点:
Array
(
[basic] => 1
[example] => 2
[for] => 3
[merging] => 4
[two] => 5
[associative] => 6
[arrays] => 7
[mate] => 8
)
Run Code Online (Sandbox Code Playgroud)
当然,您并不总是必须在类文件的顶部放置/创建数组,并且在需要时,您显然可以在单个函数中创建数组(如果它们仅在其中需要/使用) - 我在这里展示的只是我最近为一个工作项目所做的事情(这些数组中的数据当然是示例数据!)
| 归档时间: |
|
| 查看次数: |
16361 次 |
| 最近记录: |