2016-06-08 77 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