这很容易,但我正在努力。如果下面的数组存在(名为“$ startersnames”)并且我特别想要回显以“qb”为键的值,我该怎么做?
我假设$ startersnames ['qb'],但没有运气。
$ startersnames [0] ['qb']有效,但我不知道它是索引0。
Array
(
[0] => Array
(
[qb] => Tannehill
)
[1] => Array
(
[rb] => Ingram
)
[2] => Array
(
[wr] => Evans
)
[3] => Array
(
[wr] => Hopkins
)
[4] => Array
(
[wr] => Watkins
)
[5] => Array
(
[te] => Graham
)
[6] => Array
(
[pk] => Hauschka
)
[7] => Array
(
[def] => Rams
)
[8] => Array
(
[flex] => Smith
)
)
答案 0 :(得分:2)
您可以使用array_column(来自php 5.5),如下所示:
$qb = array_column($startersnames, 'qb');
echo $qb[0];
当您需要打印所有 wr
个名称时,此方法特别有用。您可以像这样迭代:
foreach(array_column($startersnames, 'wr') as $wr) {
echo $wr, "\n";
}
答案 1 :(得分:2)
你似乎期待一个带有文本键和每个值的数组,但你显示的数组是一个数组数组:即每个数字键都有一个数组值 - 你所在的键/值对寻找关键'qb'。
如果你想在$ array ['qb']找到一个值,你的数组看起来会更像:
$array = [
'qb' => 'Tannehill',
'rb' => 'etc'
];
现在$ array ['qb']有一个值。
如果您正在检查的数组是键/值对的列表,那么您必须遍历数组成员并检查每个成员(即第一个答案中显示的foreach循环)。
答案 2 :(得分:1)
对于多维数组,您可以遍历外部数组并测试内部数组以获取密钥。
function findKey(&$arr, $key) {
foreach($arr as $innerArr){
if(isset($innerArr[$key])) {
return $innerArr[$key];
}
}
return ""; // Not found
}
echo findKey($startersnames, "qb");
答案 3 :(得分:0)
你可以试试foreach循环
$key = "qb";
foreach($startersnames as $innerArr){
if(isset($innerArr[$key])) {
echo $innerArr[$key];
}
}
答案 4 :(得分:0)
$keyNeeded = 'qb';
$indexNeeded = null;
$valueNeeded = null;
foreach($startersnames as $index => $innerArr){
//Compare key
if(key($innerArray) === $keyNeeded){
//Get value
$valueNeeded = $innerArr[key($innerArray)];
//Store index found
$indexNeeded = $index;
//Ok, I'm found, let's go!
break;
}
}
if(!empty($indexNeeded) && !empty($valueNeeded)){
echo 'This is your value: ';
echo $startersnames[$indexNeeded]['qb'];
echo 'Or: ':
echo $valueNeeded;
}