2013-11-27 129 views
0

我有這樣的關聯數組結構:PHP:如何從關聯數組中獲取鍵和值?

$multiArray = array(
       'key1' => array(1, 2, 3, 4),     
       'key2' => array(5, 6, 7, 8), 
       'key3' => array(9, 10, 11, 12) 
      ); 

當我調用$多陣列[「鍵1」],我得到的值(這是正常的):

// Example 1 
$multiArray['key1']; 
//$multiArray only has [1, 2, 3, 4] 

有沒有一種方法,當我打電話給我想$ multiArray ['key1'],我可以有['key1' => array(1,2,3,4)]或其他兩個鍵,這取決於情況?

我可以這樣構造$ multiArray,但我想知道是否有更好的方法。

// Example 2 
$multiArray = array(
       'keyA' => array('key1' => array(1, 2, 3, 4)), 
       'keyB' => array('key2' => array(5, 6, 7, 8)), 
       'keyC' => array('key3' => array(9, 10, 11, 12)) 
      ); 
$multiArray['keyA']; 
// $multiArray is now what I want: ['key1' => [1, 2, 3, 4]] 
+1

你能指出爲什麼你需要密鑰,如果你已經使用密鑰訪問數組?你可以使用'$ arrKeys = array_keys($ multiArray);'檢索所有的數組鍵,這有幫助嗎? – SaschaM78

+0

我認爲bcmcfc關於getArray()函數的答案可能是我一直在尋找的。我只是不清楚自己想要什麼。 – Stephen

回答

1

你可以做這樣的事情:

function getArray ($multiArray, $key) { 
    return array($key => $multiArray[$key]); 
} 

$result = array('key1' => $multiArray['key1']); 

多一點上下文關於你如何但是使用它會很有用。這聽起來像你已經知道在使用點要求的鑰匙。如果不是,您可能需要使用array_keys

+0

我想將這個變量傳遞給一個我不控制的函數,它期望我所問的數據結構。我認爲你的效用函數是我正在尋找的。 – Stephen

1

我想你可能會尋找是foreach

$myArray = array('key1' => array(1, 2, 3), 'key2' => array(4, 5, 6)); 
$multiArray = array(); 
foreach ($myArray as $key => $value) { 
    // $key would be key1 or key2 
    // $value would be array(1, 2, 3) or array(4, 5, 6) 
    $multiArray[] = array($key => $value); 
} 
+0

我不打算拆開陣列。我需要重組它。 – Stephen

+0

我更新了我的答案,以防情況可能有所幫助。 – aust

相關問題