2013-11-27 133 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

相关问题