2012-01-12 51 views
2

例如,我有一个数组:发现价值

array(
    array(
     ['make']=>ford 
     ['color']=>blue 
     ['type']=>automatic 
    ), 
    array(
     ['make']=>chevrolet 
     ['color']=>red 
     ['type']=>manual 
) 

是有可能在PHP中发现,当所有已知键的值我必须继续是另一个关键的价值?

举个例子,我的值是“blue”,我知道它在“color”键中,现在我能从这个信息中找到“car”的值吗?

已知密钥的已知值是唯一的。 (在这个例子中,不可能有两个“蓝色”值)

我希望这是有道理的,并且预先感谢您的帮助。

回答

3
$knownColor = 'blue'; 
$knownKey = 'color'; 
$desiredKey = 'make'; 

foreach ($outerArray as $inner) { 
    if ($inner[$knownKey] == $knownColor) { 
    $result = $inner[$desiredKey]; 
    // or to get the whole inner array: 
    // $result = $inner; 
    break; 
    } 
} 

var_dump($result); 
1

假设你的数组分配给$cars它会去是这样的:

$knownColor = 'blue'; 
$knownKey = 'color'; 
... 
foreach ($cars as $car) { 
    if ($car[$knownKey] === $knownColor) { 
     return $car; 
    } 
} 
+0

谢谢!如果阵列要多层次而不是这里显示的一个层次..?让我们说一个“未知”的深度水平..? – PaulSkinner 2012-01-12 14:28:53

+1

您将不得不遍历数组,但不知道数组的结构很难提供示例。 – JaredMcAteer 2012-01-12 14:34:37