我使用键值对在PHP中定义了一个数组:
$myArray = (
'item1' => 'val1',
'item2' => 'val2',
'item3' => 'val3'
);
但每当我需要使用像$myArray[1]
这样的数字索引使用此数组中的一个存储值时,我会收到以下错误:
注意:未定义的偏移:1 ...
以前我虽然在定义数组成员时总会创建数字索引,但现在这个错误告诉我错了。
我的问题是:我们不能在使用PHP中的键值对创建的数组上使用数字索引吗?
答案 0 :(得分:7)
不能通过数字索引访问关联数组的值。但您可以先通过array_values
传递数组,以获得所需内容:
echo array_values($myArray)[1];
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
}