Как сравнить ключ и значения внутреннего массива и соответственно установить значение переменной в PHP?

У меня есть следующий большой массив под названием $UserProfile следующее :

Array
(
[cf_classification] => Array
(
[field_id] => 10
[field_name] => classification
[customValue] => 11
[cg_user_group_id] => 0
[options] => Array
(
[11] => Array
(
[value] => Freshman
)

[12] => Array
(
[value] => Shopomore
)

[13] => Array
(
[value] => Junior
)

[14] => Array
(
[value] => Senior
)

[15] => Array
(
[value] => Masters
)

[16] => Array
(
[value] => Ph.D
)

)

)
)

Теперь, если вы видите из приведенного выше массива, есть одна пара ключ-значение следующим образом:

[customValue] => 11

В приведенном выше массиве также есть один внутренний уровень уровня называется options следующее :

[options] => Array
(
[11] => Array
(
[value] => Freshman
)

[12] => Array
(
[value] => Shopomore
)

[13] => Array
(
[value] => Junior
)

[14] => Array
(
[value] => Senior
)

[15] => Array
(
[value] => Masters
)

[16] => Array
(
[value] => Ph.D
)

)

Чего я хочу добиться — это сравнить значения ключей внутренний массив варианты со значением ключа [customValue] от внешний массив и после совпадения присвойте значение новой переменной $education,

Короче говоря, в вышеприведенном случае $ образование должно иметь значение 'Freshman' так как 11 является соответствующим ключом и значением. Таким образом, желаемый результат будет

$educaion = 'Freshman';

У меня вопрос, как сделать это программно, сделав минимальное количество сравнений?

Благодарю.

3

Решение

это может дать вам некоторое представление

я использую метод array_keys_exists ($ key, $ array)
проверить, существует ли этот ключ в массиве

Вы можете проверить это также
http://php.net/manual/en/ref.array.php

<?php$user_profile = array(
'cf_classification' => array(
'field_id' => 10,
'field_name' => 'classification',
'customValue' => 11,
'cg_user_group_id' => 0,
'options' => array(
11 => array(
'value' => 'Freshman'
),

12 => array(
'value' => 'Shopomore'
),

13 => array(
'value' => 'Junior'
),

14 => array(
'value' => 'Senior'
),

15 => array(
'value' => 'Masters'
),

16 => array(
'value' => 'Ph.D'
)

)

)
);$custom_field = $user_profile['cf_classification']['customValue'];
$education = '';
$options = $user_profile['cf_classification']['options'];
# check if the $custom_field is in the options of user_profile['cf_classification']
# using the array_key_exist method

if (array_key_exists($custom_field, $options)) {
# to get the value of the custom field then you need to traverse
# the array for its value
$education = $options[$custom_field]['value'];
} else {
$education =  "not found";
}

echo $education;

это напечатает

Freshman
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]