PHP多维数组:给定密钥检索值

时间:2013-07-01 14:13:18

标签: php arrays multidimensional-array

我有一个像这样的数组,由带有一对id和名称的数组组成:

$myarray
: array = 
  0: array = 
    53: string = Robert  
  1: array = 
    28: string = Carl  
  2: array = 
    32: string = Anna 
  3: array = 
    84: string = Mary  
  4: array = 
    59: string = Daniel   

在我的php脚本的某个时刻,我会得到一个id,从这个id我需要这个名字。

我知道使用一维数组是一个简单的$ myarray [$ id],但是上面有一个,我怎么能这样做?

非常感谢!!

3 个答案:

答案 0 :(得分:2)

如果你知道这两个ID,那很简单:

$myarray[2][32] == 'Anna'

如果你知道第一个,你可以使用以下技巧:

array_shift(array_values($myarray[2])) == 'Anna'

如果您稍后才知道,最好先将阵列展平:

$newarray = array()
foreach($myarray as $element) {
  $newarray += $element;
}
echo $newarray[32]; // Anna

答案 1 :(得分:1)

你应该重新考虑结构。

如果你有$ id = 32:

,你想要检索'Anna'
$id = 32;
$name = null;
foreach ($myarray as $row) {
    if (isset($row[$id]) {
        $name = $row[$id];
        break;
    }
}

答案 2 :(得分:0)

您可以让脚本分别将两个不同ID的值分配给$id1$id2,然后您可以执行此操作:

<?php 

$id1 = 0; //get your ID #1
$id2 = 53; //get your ID #2
echo $myarray[$id1][$id2]; //outputs Robert

?>

希望这有帮助。