Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Получить элемент массива по ключу (вне зависимости от регистра) и присвоить ему значение
Необходимо получить элемент массива по ключу и присвоить ему значение. Условие осложняется тем, что элемент массива необходимо получить вне зависимости от регистра.
Пример:
Например, передав в функцию параметр $name равный 'BLACK', 'black' или 'blACk', значение должно присвоиться только элементу массива $values['Black'].
Как это сделать?
Заранее спасибо...
P.S.: вариант хранения индексов массива в верхнем или нижнем регистре не предлагать...Отредактировано модератором: JustUserR, 19 Марта, 2010 - 19:10:41
JustUserR
Отправлено: 19 Марта, 2010 - 19:00:29
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
bobroff Во-первых все-таки надо передавать массив по ссылке чтобы в нем можно было изменять значения - а во-вторых для создания регистронезависимой установк можно сделать следующее - сначала вы получаете обычный список ключей и ключи нижнего регистра с помощью http://www.php.su/functions/?arr...-change-key-case - потом с помощью strtolower сравнивате их и узнаете какой ключ соотвествуюет настоящему ключу и устанавлиаете в него значения - конечно все это будет работать только в том случае если ключи уникальные по имени
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Ch_chov
Отправлено: 19 Марта, 2010 - 19:02:48
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
элемент массива необходимо получить вне зависимости от регистра
В этом случае в массиве могут находится несколько элементов подходящих под это условие.
Если не хочешь преобразовать ключи исходного массива к одинаковому виду. То можно преобразовать внутри функции локальную копию этого массива. array_change_key_case
vaanyaa
Отправлено: 19 Марта, 2010 - 19:05:07
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2010 Откуда: Киев
final protectedfunction _setModelElementName($modelname,$elementname)
{
if($modelname===NULL OR $elementname===NULL) throw new iCore_Model_Element_Exception("NO_REQUIRED_PARAM");
if(!(is_string($modelname)) OR !(is_string($elementname))) throw new iCore_Model_Element_Exception("WRONG_PARAM_FORMAT");
if($this->_getModelName()===NULL) throw new iCore_Model_Element_Exception("NO_MODELS_NAME");
if(!($this->_isModel($modelname))) throw new iCore_Model_Element_Exception("NOT_MODEL",$modelname);
if(!($this->_isModelElement($modelname,$elementname))) throw new iCore_Model_Element_Exception("NOT_MODEL_ELEMENT",array($elementname,$modelname));
if(!($this->_hasModelName($modelname))) throw new iCore_Model_Element_Exception("MODEL_NOT_DECLARE_IN_ELEMENT",array($modelname,$this->getElementName()));
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.