2016-06-08 80 views
-1

我有一个这样的数组:获得价值的关键

Array 
(
[0] => Array 
    (
     [settingID] => 1 
     [name] => audioCueDistance 
     [setValue] => false 
    ) 

[1] => Array 
    (
     [settingID] => 2 
     [name] => audioCueDistanceToGo 
     [setValue] => true 
    ) 

[2] => Array 
    (
     [settingID] => 3 
     [name] => audioCues 
     [setValue] => true 
    ) 

[3] => Array 
    (
     [settingID] => 4 
     [name] => audioCueStyle 
     [setValue] => default 
    ) 

[4] => Array 
    (
     [settingID] => 5 
     [name] => audioCueTime 
     [setValue] => true 
    ) 

[5] => Array 
    (
     [settingID] => 6 
     [name] => isMetric 
     [setValue] => true 
    ) 

我怎样才能从例如关键单个值,我想输出isMetric的setValue方法。

感谢

+1

的可能的复制[如何从数组值(http://stackoverflow.com/questions/37406041/how-get-value-from-array) –

回答

1
foreach ($foo as $bar) { 
    if ($bar['name'] == "isMetric") { 
     // Use setValue here 
    } 
} 
+0

这工作。谢谢。 – puks1978

+0

请小心使用此解决方案。如果您需要经常访问该属性,则首先转换该数组是有意义的,这样您可以随时访问该密钥而不会失去性能。 – androidavid

+0

@androidavid你说的是有效的,但我只是用一个简单的循环去做,因为如果有人需要访问特定元素之外的循环经常对整个集合,那么它应该可能只是一个类,而不是做一个数组作为对象 –

0
foreach($array as $element) 
{ 
    if($element['name'] = 'isMetric') 
     return $element['setValue']; 
} 
throw new \Exception('isMetric Not Found.'); 
1

从我了解你想要做的事一样$myArray['isMetric']['setValue']

由于你的数组不是这种形式,你需要这样映射它。

$myArray = array(
    array(
     'settingID'=>6, 
     'name'=>'isMetric', 
     'value'=>true 
    ) 
); 

$myAssocArray = array_reduce($myArray, function($carry, $item){ 
    $carry[$item['name']] = $item; 
    return $carry; 
}, array()); 

echo $myAssocArray['isMetric']['setValue']; 

运行该代码在这里:https://repl.it/CZ3R