2013-07-01 72 views
0

我有一個這樣的數組,對ID和姓名的製作陣列:PHP多維數組:給定鍵檢索值

$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]一樣簡單,但使用上面那個,我該怎麼做?

非常感謝!

+1

你會'$ id'是什麼樣子?在一個多數組中,你只需使用更多'[]'。像:'$ myarray [0] [53]'將會是'「Robert」'。 –

回答

2

如果你知道,這兩個標識,很容易:

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

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

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

如果你只知道後,它可能是明智的首先將您的陣列扁平化:

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

正是我所需要的,非常感謝! – user523129

0

您可以讓腳本將兩個不同ID的值分配給分別爲和$id2,然後你可以這樣做:

<?php 

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

?> 

希望這有助於。

1

您應該重新考慮結構。

如果您想找回 '安娜' 如果你有$ ID = 32:

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