我们不能在PHP上使用键值的数组上使用数字索引吗?

时间:2016-03-01 19:34:56

标签: php arrays indexing offset key-value

我使用键值对在PHP中定义了一个数组:

$myArray = (
    'item1' => 'val1',
    'item2' => 'val2',
    'item3' => 'val3'
);

但每当我需要使用像$myArray[1]这样的数字索引使用此数组中的一个存储值时,我会收到以下错误:

  

注意:未定义的偏移:1 ...

以前我虽然在定义数组成员时总会创建数字索引,但现在这个错误告诉我错了。

我的问题是:我们不能在使用PHP中的键值对创建的数组上使用数字索引吗?

2 个答案:

答案 0 :(得分:7)

不能通过数字索引访问关联数组的值。但您可以先通过array_values传递数组,以获得所需内容:

echo array_values($myArray)[1];

http://php.net/array_values

  

array_values()返回数组中的所有值,并以数字形式索引数组。

答案 1 :(得分:1)

您可以在明确需要时使用array_keys

$arrayKeys = array_keys($myArray);

echo $myArray[$arrayKeys[0]];

或者在foreach中:

foreach($myArray as $key=>$value) {
//$ key stores item1,item2,item3
//$value stores $val1, val2,val3
}