为什么 PHP 在我的关联数组前加上一个数字索引?
Why is PHP prepending a numerical index to my associative array?
当我使用这段代码时,
$views = array();
$views[]=['somevalue'=>'customerview.php'];
$views[]=['anothervalue'=>'ordersview.php'];
我明白了,
Array
(
[0] => Array
(
[somevalue] => customerview.php
)
[1] => Array
(
[anothervalue] => ordersview.php
)
)
如何在不使用 array_shift 之类的情况下摆脱初始数组?为什么它把数值数组放在第一位而不是这个,
Array
(
[somevalue] => customerview.php
[anothervalue] => ordersview.php
)
编辑:如何为此使用短语法?这可能吗?
当你这样做时:
$views[] = ['somevalue' => 'customerview.php'];
你是说,“将另一个元素推入数组,并为其分配以下值:
'somevalue' => 'customerview.php'
但是这个数量是一个数组键和一个数组值。因此,您正在做的是在 $views
数组中插入一个本身包含数组键和数组值的元素。这解释了您所看到的行为。
这应该会给您想要的结果:
$views = array();
$views['somevalue'] = 'customerview.php';
$views['anothervalue'] ='ordersview.php';
或者,在 shorthand 中:
$views = [
'somevalue' => 'customerview.php',
'anothervalue' => 'ordersview.php'
];
或者你可以这样做:
$value1 = 'first';
$value2 = 'second';
$array = array(
$value1 => 'customerview.php',
$value2 => 'ordersview.php'
);
$views
已经是一个数组,所以当您使用 $views[]
时,您是在向现有数组中添加另一个数组。
您需要使用
$views = array(
'somevalue' => 'customerview.php',
'anothervalue' => 'ordersview.php'
)
当我使用这段代码时,
$views = array();
$views[]=['somevalue'=>'customerview.php'];
$views[]=['anothervalue'=>'ordersview.php'];
我明白了,
Array
(
[0] => Array
(
[somevalue] => customerview.php
)
[1] => Array
(
[anothervalue] => ordersview.php
)
)
如何在不使用 array_shift 之类的情况下摆脱初始数组?为什么它把数值数组放在第一位而不是这个,
Array
(
[somevalue] => customerview.php
[anothervalue] => ordersview.php
)
编辑:如何为此使用短语法?这可能吗?
当你这样做时:
$views[] = ['somevalue' => 'customerview.php'];
你是说,“将另一个元素推入数组,并为其分配以下值:
'somevalue' => 'customerview.php'
但是这个数量是一个数组键和一个数组值。因此,您正在做的是在 $views
数组中插入一个本身包含数组键和数组值的元素。这解释了您所看到的行为。
这应该会给您想要的结果:
$views = array();
$views['somevalue'] = 'customerview.php';
$views['anothervalue'] ='ordersview.php';
或者,在 shorthand 中:
$views = [
'somevalue' => 'customerview.php',
'anothervalue' => 'ordersview.php'
];
或者你可以这样做:
$value1 = 'first';
$value2 = 'second';
$array = array(
$value1 => 'customerview.php',
$value2 => 'ordersview.php'
);
$views
已经是一个数组,所以当您使用 $views[]
时,您是在向现有数组中添加另一个数组。
您需要使用
$views = array(
'somevalue' => 'customerview.php',
'anothervalue' => 'ordersview.php'
)