2014-09-23 5 views
-2

Мне нужно получить индекс многомерного и выводить его как переменную. Я знаю, что это очень просто, но я борюсь с этим.Получить индекс для многомерного массива

Например, учитывая следующее:

[1]=> 
    array(11) { 
    ["field_label"]=> 
    string(24) "What is your first name?" 
    ["field_name"]=> 
    string(6) "f_name" 
    ["identifier"]=> 
    bool(true) 
    ["options"]=> 
    bool(false) 
    ["form_name"]=> 
    string(12) "demographics" 
    } 
    [2]=> 
    array(11) { 
    ["field_label"]=> 
    string(23) "What is your last name?" 
    ["field_name"]=> 
    string(6) "l_name" 
    ["identifier"]=> 
    bool(true) 
    ["options"]=> 
    bool(false) 
    ["form_name"]=> 
    string(12) "demographics" 
    } 
[3]=> 
    array(11) { 
    ["field_label"]=> 
    string(32) "Researcher who took measurements" 
    ["field_name"]=> 
    string(17) "weight_researcher" 
    ["identifier"]=> 
    bool(false) 
    ["options"]=> 
    bool(false) 
    ["form_name"]=> 
    string(6) "weight" 
    } 

Я хочу найти индекс для первого элемента, который имеет FORM_NAME от «веса» (# 3)

+1

Вы должны начать здесь http://php.net/manual/en/function.array-search.php –

ответ

2

Просто используйте Еогеасп и Условный внутри него:

foreach($array as $key => $value) { 
       //^here resides the key of the parent array 
    if($value['form_name'] == 'weight') { // if form name is weight 
     echo $key; // echo the key 
     break; // then stop on first occurence 
    } 
} 
0

PHP> = 5.5.0 необходимо для array_column:

$key = array_search('weight', array_column($array, 'form_name')); 

Для нескольких ключей:

$keys = array_keys(array_column($array, 'form_name'), 'weight'); 
Смежные вопросы