【问题标题】:PHP var_dump arrayPHP var_dump 数组
【发布时间】:2010-02-22 20:48:51
【问题描述】:
array(14) {
  [0]=>
  string(1) "1"
  ["id"]=>
  string(1) "1"
  [1]=>
  string(7) "myUserName"
  ["UserID"]=>
  string(7) "myUserName"
  [2]=>
  string(10) "myPassword"
  ["passwordID"]=>
  string(10) "myPassword"
  [3]=>
  string(24) "myEmail@domain.com"
  ["emailAddress"]=>
  string(24) "myEmail@domain.com"
  [4]=>
  string(7) "myFirstName"
  ["firstName"]=>
  string(7) "myFirstName"
  [5]=>
  string(8) "myLastName"
  ["lastName"]=>
  string(8) "myLastName"
  [6]=>
  string(1) "1"
  ["active"]=>
  string(1) "1"
}

如何使用 PHP 访问这个数组的内容?

上面是一个 var_dump($info)

【问题讨论】:

标签: php mysql arrays


【解决方案1】:

这取决于您尝试访问数组的哪一部分。


如果你试图访问一个特定的项目,你可以通过它的 index 来访问它;例如:

echo $info['passwordID'];

应该给你:

myPassword


(在评论后编辑)

对于电子邮件地址,您的var_dump 的输出中有这部分:

["emailAddress"]=>
  string(24) "myEmail@domain.com"

这表示电子邮件地址作为一个元素存储在数组中,该元素具有键“emailAddress”。

这意味着您应该能够像这样获得该电子邮件地址:

echo $info['emailAddress'];


因为您在var_dump 的输出中也有这部分文本:
(关于数据重复,您应该阅读 Pekka's answer,他提供了为什么您的数据在数组中两次出现的想法,其中整数和字符串都作为键)

[3]=>
  string(24) "myEmail@domain.com"

你也可以使用:

echo $info[3];

(当然,在每种情况下,您也可以将其存储到变量中以供未来重用)


如果您想访问每个项目,另一种解决方案是使用一些 foreach 循环;例如:

foreach ($info as $key => value) {
    echo "Value for key $key is $value <br />";
}


您可能想通过arrays section of the PHP manual 了解更多信息。

还有关于array functions的部分。

【讨论】:

  • 我正在尝试获取电子邮件地址,但无法打印
  • 使用Martin的方法,应该可以搞清楚。
  • @orange :我已经编辑了我的答案;正如我在编辑期间所说,您还应该阅读 Pekka 的回答,他解释了“为什么”您可能会得到这种数据。
  • 再次+1,大宅最详细的答案! :) 如果这对 OP 没有帮助,那么什么都不会。
  • 谢谢 :-) 是的,希望对您有所帮助 :-)
【解决方案2】:

您可以使用数字键或关联键:

echo $array[0]; // outputs 1
echo $array["id"];  // outputs 1

我猜这是mysql_fetch_array() 操作的结果,不是吗?您可能需要使用 the second parameter to that function 指定是需要数字数组还是关联数组。

例子:

$record = mysql_fetch_array($query, MYSQL_ASSOC);  // for associative keys only
$record = mysql_fetch_array($query, MYSQL_NUM);    // for numeric keys only

【讨论】:

  • +1 :我已经编辑了我的答案以添加指向您的链接;不错的收获,关于 mysql_fetch_array 的东西!
【解决方案3】:

该数组似乎同时具有字符串和数字键。您可以使用数组索引运算符[] 访问字段。提供数字键或列名:

echo $info['UserID']; // output "myUserName"
echo $info['emailAddress']; // output "myEmail@domain.com"

【讨论】:

    【解决方案4】:

    如果$info是数组,那么你可以echo $info[6]例如。
    如果你想要它作为一个字符串然后$s=print_r($info,true);

    看来你做错了什么,因为不应该像那样访问数组,还有其他方法可以将对象作为数组访问。

    【讨论】:

      猜你喜欢
      • 2021-03-14
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2012-10-25
      • 2013-11-30
      • 1970-01-01
      相关资源
      最近更新 更多