如何从此多维PHP数组中获取单个值


74

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

4
您能否阐明“单一格式”的含义?
Arkaaito 2010年

我不知道该怎么称呼。但是我想从数组中一张一张地获取数据。

2
echo $ myarray ['email']确实显示email@domain.com,单个值。您不清楚您要问什么!
Dan Grossman

@Dan Grossman大声笑好吧,让我举个例子。$myarray从这个数组我如何获得输出first_namegender或等

Answers:


113

查看您的中的键和缩进print_r

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

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

...等等


我可以通过以下方式来回显键,但是只能在我的本地实例上:echo myarray()["baseurl"];当我推送到远程服务器时,会出现解析/语法错误。这是为什么?
Michel Joanisse 2015年

2
@MichelJoanisse可能是因为您在远程服务器上使用的是较旧的PHP版本。PHP <5.4(php.net/manual/en/language.types.array.php#example-102)不支持该语法。
塞缪尔·林德布鲁姆


22

我想你想要这个:

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

是!这个。我得到回报,0 = Array但是当我print_r($myarray)显示输出时。

认输了$myarray[0]。谢谢,让我学到了新的东西:P


2
echo $myarray[0]->['email'];

仅当您通过时才尝试此操作 stdclass object


1
您能为原始海报提供更多背景信息吗?像解释在他的代码中什么不起作用以及建议的更改将如何解决它。也许详细说明是什么stdclass object
JeromeFr

1
他正在获取2d数组,并且想要2d array的第一个值。因此,如果他将自己的对象从控制器传递到视图,例如在Laravel(MVC框架)中,则他的视图将成为stdclass对象。从这个stdclass对象中,如果一个人想要单一值,他可以像我上面提到的那样打印他的值。有关php链接中更多stdclass对象的信息:php.net/manual/en/language.types.object.php
Masad Ashraf,

1

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

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

如果您希望该数组成为$myarray,则只需要做

$myarray = $myarray[0];

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.