У меня есть следующий большой массив под названием $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';
У меня вопрос, как сделать это программно, сделав минимальное количество сравнений?
Благодарю.
это может дать вам некоторое представление
я использую метод 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
Других решений пока нет …