我有这个数组 - 它是一个多维数组,我不知道0索引:
Array
(
[0] => Array
(
[foo] => 1111
[bar] => example
)
)
我需要在一行中使用本机php函数来获取密钥bar
的值。我尝试了很多current
,key
,array_keys
等组合。
我current($array)
得到了:
Array
(
[foo] => 1111
[bar] => example
)
我发现array_keys
,允许我使用第二个参数指定要查找的值。但我不知道价值,只知道关键,array_values
没有提出第二个论点来找到(:o)。
我现在在这里:current(array_keys(array_flip(current($b))), 'bar')
无效。但是
$c = array_flip(current($b));
print_r(current(array_keys($c, 'bar')));
有效 - 我得到“例子”。 (顺便说一句,为什么这两条线路正在工作而不是之前的线路?)。
我知道,使用array_flip
这个很难看,但我不知道怎么办。任何的想法 ?感谢。
答案 0 :(得分:5)
什么阻止你使用
$value=$myArray[0]["bar"];
echo $value;
答案 1 :(得分:2)
在PHP 5.4+中尝试:
<?php
$a = array(array('foo' => 1111, 'bar' => 'example'));
print_r(current($a)['bar']);
?>
答案 2 :(得分:1)
不要问我LOL:
$a = array(array('foo' => 1111, 'bar' => 'example'));
echo array_map(function($v){if(isset($v['bar'])){return $v['bar'];}}, $a)[0];
注意:强>
这仅适用于最新版本的PHP 5.4 +
如果没有“bar”键,则会抛出错误
更好的解决方案:
$a = array(
array('aaa' => 2222, 'bbb' => '333'),
array('foo' => 1111, 'bar' => 'example'),
array('wut' => 'lol', 'zzz' => 'ggg')
);
echo array_values(array_filter(array_map(function($v){if(isset($v['bar'])){return $v['bar'];}}, $a)))[0];
答案 3 :(得分:0)
$c = $b[0]['bar'];
答案 4 :(得分:0)
$a = array(array('foo' => 1111, 'bar' => 'example'));
echo $a[0]['bar'];
例如
答案 5 :(得分:0)
使用此代码:
echo $array[0]['bar'];
或者,使用PHP函数:
echo array_pop(array_shift($array));
它将提取$array
的第一个元素:
Array
(
[foo] => 1111
[bar] => example
)
然后提取并显示该数组的最后一个元素:
example
答案 6 :(得分:0)
如果您不想使用[0],可以改用:
$value = null;
foreach($array as $each)
{
if(isset($each['bar']))
$value = $each['bar'];
}