2012-05-01 78 views
1

我有一個多維數組如下:選擇數據多維數組

$a = array (
    #id   num name  full name 
    0 => array (65, 'name-1', 'Name One'), 
    1 => array (76, 'name-2', 'Name Two'), 
    2 => array (82, 'name-3', 'Name Three') 
); 

現在,如果我要選擇'name-1'(名稱),我用$a[0][1]並選擇'Name Three'(全稱)我用$a[2][2]

所以,如果我有數組中的id,我可以選擇數字,名稱或全名。

但是,如果我有數字或名稱,我想選擇全名呢?我怎麼能得到它?

謝謝。

回答

3

如果id爲你指的是民:

$num = // num you want to find 
foreach ($a as $b) { 
    if ($b[0] == $num) { 
     $name = $b[1]; 
     $full = $b[2]; 
     break; 
    } 
} 

如果id爲你的意思#ID則:

$id = // id you want to find 
$num = $a[$id][0]; 
$name = $a[$id][1]; 
$full = $a[$id][2]; 
+2

'break'可能會使循環更有效率。 –

+0

@Interstellar_Coder的確如此。 – Shoe

2

你的價值,你想要一個關鍵,所以也許你應該考慮關於重組您的陣列。如果你想保持這種結構,你需要遍歷每個元素(for,foreach),檢查array_search你的匹配(結果是數組鍵或假)。

for ($i = 0, $ix = count($a); $i < $ix; ++$i) { 
    $pos = array_search($NAME, $a[$i]); 
    if ($pos === false) { 
    continue; 
    } 
    print_r($a[$i]); 
    break; 
} 
1

您將不得不遍歷數組。例如,如果您的號碼爲:

$result = false; 
foreach ($a as $value) { 
    if ($value[0] == $number) { 
     $result = $value; break; 
    } 
} 

現在您可以使用$值。要使用名稱或全名進行搜索,您必須使用$ value [1]和$ value [2]。