我试图调用一个关联数组,我很困惑,为什么这不起作用。
如果我print_r($test);
显示以下内容:
Array(
[e7a36fadf2410205f0768da1b61156d9] => Array(
[rowid] => e7a36fadf2410205f0768da1b61156d9
[id] => 3
[qty] => 1
[price] => 20
[name] => test
[options] => Array(
[permName] => large
)
[subtotal] => 20
)
)
但如果我$test[0]["rowid"];
,则会出现以下错误消息:未定义的偏移量:0
我仍然是一个php新手但是从我到目前为止所学到的关于数组的知识应该可行。有什么想法吗?
由于
答案 0 :(得分:3)
您的数组是关联的,因此$test[0]
不存在。
$test['e7a36fadf2410205f0768da1b61156d9']['rowid']
如果您想在不引用密钥的情况下获取第一个元素,可以使用reset($test)
$first_element = reset($test);
$first_element['row_id'];
这两个例子的功能完全相同。
答案 1 :(得分:1)
你的outter数组似乎有关键字“e7a36fadf2410205f0768da1b61156d9” - 它没有用数字索引。
所以你应该使用
$test["e7a36fadf2410205f0768da1b61156d9"]["rowid"]
如果你想知道第一个非数字键是什么,你也可以使用array_keys
答案 2 :(得分:0)
您可以使用键$test['e7a36fadf2410205f0768da1b61156d9']['rowid'] as [Mike B suggested][1]. Or get first element of array with [
reset()`] 2:
$element = reset( $test);
$element['rowid'];
如果您稍后需要使用这些密钥,请使用array_keys()
(您始终可以使用key()
获取当前密钥):
$keys = array_keys( $test);
$test[ $keys[0]]['rowid'];
如果您需要浏览测试中的所有记录,请使用foreach
:
foreach( $test as $key => $item){
$item['rowid'];
}