【问题标题】:Notice: Undefined Offset: 0注意:未定义的偏移量:0
【发布时间】:2012-02-08 08:36:21
【问题描述】:

我试图从数组中获取一个值,但是当我使用$array[0] 时,我收到一个 PHP 通知“未定义偏移量:0”。但是,当我使用$array['id'] 时(应该与使用'0' 相同,因为'id' 是数组中的第一个键),我能够得到值。我做了一个 print_r 并输出了这个:

Array ( 
     [id] => 1 
     [username] => test 
)

我不应该能够使用它的索引来获取密钥吗?我相信它早先工作了,但我不知道我能做些什么让它停止工作。有什么想法吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    $array['id'] $array[0] 相同。这种混淆可能与 array 一词有关。 php 的数组不是你在另一种语言中所说的数组,它们是 mapsdictionaries

    (哦,即使它们不是,php 数组、映射或字典中元素的顺序也取决于实现,因此虽然您将使用$tmp = array_values($array); echo $tmp[0]; 获取 id,但允许使用 php随机排列数组)。

    【讨论】:

      【解决方案2】:

      不,你不应该这样做。

      您可能会想到从 mysql_fetch_array 之类的东西获得的数组,默认情况下,它允许您使用数字和字符串索引来获取列 - 但您可以这样做的原因是因为数组包含 两者都

      您也可以使用array_values 从数组中提取值,从而将索引本质上转换为数字索引,但这不是一回事,真的。

      【讨论】:

      • 谢谢,我就是这么想的
      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2015-08-01
      • 1970-01-01
      相关资源
      最近更新 更多