PHP多维数组:给定关键字检索值


PHP multidimensional arrays: given the key retrieve value

我有一个这样的数组,由带有成对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],但对于上面的数组,我该怎么做呢??

非常感谢!!

如果你知道这两个ID,那就很容易了:

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

若你们知道第一个,你们可以使用以下技巧:

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

如果你以后才知道,那么明智的做法可能是先压平你的阵列:

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

您应该重新考虑结构。

如果你想检索"安娜",如果你有$id=32:

$id = 32;
$name = null;
foreach ($myarray as $row) {
    if (isset($row[$id]) {
        $name = $row[$id];
        break;
    }
}

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

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

希望这能有所帮助。