【问题标题】:How to get single value from this multi-dimensional PHP array如何从这个多维 PHP 数组中获取单个值
【发布时间】:2011-05-21 23:59:29
【问题描述】:

例如print_r($myarray)

Array
(
    [0] => Array
    (
        [id] => 6578765
        [name] => John Smith
        [first_name] => John
        [last_name] => Smith
        [link] => http://www.example.com
        [gender] => male
        [email] => email@domain.com
        [timezone] => 8
        [updated_time] => 2010-12-07T21:02:21+0000
    )
)

问题,如何获取单个值的$myarray,例如:

echo $myarray['email'];  will show email@domain.com

【问题讨论】:

  • 你能解释一下“单一格式”是什么意思吗?
  • 不知道怎么称呼。但我想从数组中一一获取数据。
  • echo $myarray['email'] 确实显示 email@domain.com,一个单一的值。不清楚你在问什么!
  • @Dan Grossman LOL 好吧,让我举个例子。 $myarray 从这个数组中我如何获得first_namegender 等的输出。

标签: php arrays


【解决方案1】:

我想你想要这个:

foreach ($myarray as $key => $value) {
    echo "$key = $value\n";
}

【讨论】:

  • 是的!这个。我得到了返回 0 = Array 但是当我 print_r($myarray) 显示输出时。
  • 通过 $myarray[0] 得到它。谢谢让我学到了新东西:P
【解决方案2】:

查看print_r 中的键和缩进:

echo $myarray[0]['email'];

echo $myarray[0]['gender'];

...等

【讨论】:

  • 我可以通过以下方式回显一个键,但只能在我的本地实例上:echo myarray()["baseurl"]; 当我推送到远程服务器时,我得到一个解析/语法错误。这是为什么呢?
  • @MichelJoanisse 可能是因为您在远程服务器上使用的是较旧的 PHP 版本。 PHP php.net/manual/en/language.types.array.php#example-102) 不支持该语法。
【解决方案3】:

$myarray 的第一个元素是您想要的值数组。所以,现在,

echo $myarray[0]['email']; // This outputs 'email@domain.com'

如果你想让那个数组变成$myarray,那么你只需要这样做

$myarray = $myarray[0];

现在,$myarray['email'] 等将按预期输出。

【讨论】:

    【解决方案4】:

    使用array_shift函数

    $myarray = array_shift($myarray);
    

    这会将数组元素向上移动一级,您可以在不使用[0] 键的情况下访问任何数组元素

    echo $myarray['email'];  
    

    将显示 email@domain.com

    【讨论】:

      【解决方案5】:

      您也可以使用array_column()。它从 PHP 5.5 开始可用:php.net/manual/en/function.array-column.php

      它从数组的单个列中返回值,由 column_key 标识。或者,您可以提供一个 index_key,以根据输入数组中 index_key 列中的值对返回数组中的值进行索引。

      print_r(array_column($myarray, 'email'));
      

      【讨论】:

      • 我登录就是为了喜欢这个。
      【解决方案6】:
      echo $myarray[0]->['email'];
      

      仅当您传递 stdclass object 时才尝试此操作

      【讨论】:

      • 您能否为原始海报提供更多背景信息?比如解释他的代码中什么不起作用以及建议的更改将如何解决它。也许详细说明什么是stdclass object
      • 他正在获取 2d array ,并且想要 2d array 的第一个值。因此,如果他将他的对象从控制器传递到视图,就像在 Laravel(MVC 框架)中一样,他的视图将获得 stdclass 对象。从那个 stdclass 对象,如果一个人想要单个值,他可以打印他的值,如我上面提到的。在 php 链接中获取更多 stdclass 对象:php.net/manual/en/language.types.object.php
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多