簡體   English   中英

如何通過輔助鍵獲取特定數組元素的值?

[英]How do I get value of specific array element by secondary key?

這必須很容易,但是我正在努力。 如果下面的數組存在(名為“ $ 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
        )

)

您可以這樣使用array_column (從PHP 5.5開始):

$qb = array_column($startersnames, 'qb');
echo $qb[0];

演示:http: //3v4l.org/QqRuK

當您需要打印所有多個wr名稱時,此方法特別有用。 您可以像這樣簡單地進行迭代:

foreach(array_column($startersnames, 'wr') as $wr) {
    echo $wr, "\n";
}

您似乎期望一個包含文本鍵和值的數組,但是顯示的數組是一個數組數組:即每個數字鍵都有一個值,該值是一個數組-您在其中查找鍵/值對。鍵“ qb”。

如果您想在$ array ['qb']處找到一個值,那么您的數組將更像:

$array = [
   'qb' => 'Tannehill',
   'rb' => 'etc'
];

現在$ array ['qb']有一個值。

如果要檢查的數組是鍵/值對的列表,則必須遍歷數組成員並檢查每個數組(即,第一個答案中顯示的foreach循環)。

對於多維度數組,您可以遍歷外部數組並測試內部數組的鍵。

function findKey(&$arr, $key) {
    foreach($arr as $innerArr){
        if(isset($innerArr[$key])) {
            return $innerArr[$key];
        }
    }
    return ""; // Not found
}

echo findKey($startersnames, "qb");

您可以嘗試foreach循環

$key = "qb";
foreach($startersnames as $innerArr){
    if(isset($innerArr[$key])) {
        echo $innerArr[$key];
    }
}
$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;  
}

http://php.net/manual/en/function.key.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM