2016-02-24 24 views
0

獲取特定數據我有一個數組,它看起來像下面PHP - 從數組

array:7 [▼ 
    0 => array:7 [▼ 
    "id" => "62" 
    "name" => "creativeOption" 
    "label" => "Other" 
    "value" => "dfsdfsdfsdf" 
    "someId" => "14" 
    ] 
    1 => array:7 [▼ 
    "id" => "60" 
    "name" => "creativeOption" 
    "label" => "checkboxSelection" 
    "value" => "AnimSomething" 
    "someId" => "14" 
    ] 
    2 => array:7 [▼ 
    "id" => "61" 
    "name" => "creativeOption" 
    "label" => "checkboxSelection" 
    "value" => "Something" 
    "someId" => "14" 
    ] 
    3 => array:7 [▼ 
    "id" => "59" 
    "name" => "creativeNumber" 
    "label" => "Something" 
    "value" => "" 
    "someId" => "14" 
    ] 
    4 => array:7 [▼ 
    "id" => "57" 
    "name" => "creativeNumber" 
    "label" => "Something" 
    "value" => "Something 2 Info" 
    "someId" => "14" 
    ] 
] 

我感興趣的地方獲得的名稱爲creativeOption值。目前,我有這個

foreach ($array as $data) { 
    foreach($data as $key => $value) { 
     if($value == 'creativeOption') { 

     } 
    } 
} 

因此,這使我能夠找到所有creativeOption,但我將如何去獲得他們的價值?

+0

'creativeOption'是值。你想得到什麼? –

+0

@ Mr.Engineer如果($ value ['name'] =='creativeOption'){ –

+0

。只是不,它不會工作。檢查@HalayemAnis回答正確的方法來做到這一點,但即使如此,你不需要第二個foreach。 – devpro

回答

5

只要改變你的查詢有點

foreach ($array as $data) { 
    if($data['name'] == 'creativeOption') { 
     echo $data['value']; 
    } 
} 
2

你可以嘗試array_filter:

$array = [ 
    0 => [ 
    "id" => "62", 
    "name" => "creativeOption", 
    "label" => "Other", 
    "value" => "dfsdfsdfsdf", 
    "someId" => "14" 
    ], 
    1 => [ 
    "id" => "60", 
    "name" => "creativeOption", 
    "label" => "checkboxSelection", 
    "value" => "AnimSomething", 
    "someId" => "14" 
    ], 
    2 => [ 
    "id" => "59", 
    "name" => "creativeNumber", 
    "label" => "Something", 
    "value" => "", 
    "someId" => "14" 
    ], 
]; 

print_r(array_filter($array, function($v, $k){ 
    return($v['name'] === 'creativeOption'); 
})); 

這是否幫助?剛剛測試並更新了我的答案。玩的開心。

-1

試試這段代碼。

foreach ($array as $data) { 
     foreach($data as $key => $value) { 
      if($value == 'creativeOption') { 
       echo $key['value']; 
      } 
     } 
    } 
+0

您是否嘗試過這種方法?或許他會將值引用到''value'=>「blabla」' – Styphon

0
foreach ($arrays as $array) { 
    foreach ($array as $key => $value) { 
     if($key=='name' && $value=='creativeOption'){ 
      echo $array['value']; 
      echo '<br>'; 
     } 
    } 
} 

嘗試這樣它應該工作