2016-02-24 5 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» => «blabla» ' –

+0

if ($ value ['name'] == 'creativeOption') { – 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

Вы даже попробовали это? Просто нет, это не сработает. Проверьте @HalayemAnis ответ на правильный способ сделать это, но даже тогда вам не нужен второй foreach. – Styphon

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

пытается, как это должно работать

Смежные вопросы