UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.

Как вывести из многомерного массива значение?

У меня есть массив $foreas
делаю его print_r() - выводит такой результат
FIELDTRANS OBJECT ( [TITLE] => ТРАНСПОРТ [IS_PUBLIC] => 1 [SQL] => INT(11) NULL DEFAULT NULL [NAME] => TRANS [ELEMENT_NAME] => TRANS [FILTER_TYPE] => [FILTER_HINT] => [ELEMENT_TITLE] => ТРАНСПОРТ [ALLOW_INDEX] => 1 [ITEM] => ARRAY ( [PHONE] => [CATEGORY_ID] => 2 [CTYPE_NAME] => BOARD [CTYPE_ID] => 9 ) [IS_VIRTUAL] => [IS_HIDDEN] => [RULES] => ARRAY ( ) [OPTIONS] => ARRAY ( [IS_REQUIRED] => [IS_DIGITS] => [IS_NUMBER] => 0 [IS_ALPHANUMERIC] => [IS_EMAIL] => [IS_UNIQUE] => [LABEL_POS] => LEFT [LABEL_IN_LIST] => LEFT [LABEL_IN_ITEM] => LEFT [PROFILE_VALUE] => ) [DATA] => ARRAY ( ) [CLASS] => TRANS [ID] => TRANS [CTYPE_ID] => 9 [HINT] => [ORDERING] => 14 [FIELDSET] => [TYPE] => TRANS [IS_IN_LIST] => 1 [IS_IN_ITEM] => 1 [IS_IN_FILTER] => [IS_PRIVATE] => [IS_FIXED] => [IS_FIXED_TYPE] => [IS_SYSTEM] => [VALUES] => КАМАЗ ЛЕГКОВАЯ МАШИНА [GROUPS_READ] => ARRAY ( [0] => 0 ) [GROUPS_EDIT] => ARRAY ( [0] => 0 ) [DEFAULT] => КАМАЗ ЛЕГКОВАЯ МАШИНА [HANDLER_TITLE] => ТРАНСПОРТ )


Мне нужно вывести значения массива [CATEGORY_ID] в данном случае он равен 2. Как мне это сделать? К сожалению очень слаб в работе с массивами, хотя бы дайте наводку на какую не будь функцию.
  • Вопрос задан
  • 917 просмотров
Решения вопроса 2
DevMan
@DevMan
какая в жопу функция? нужно всего лишь немного почитать документацию по языку.
echo $foreas['ITEM']['CATEGORY_ID'];
но скорее всего
echo $foreas->ITEM->CATEGORY_ID;
ибо надпись OBJECT намекает.
Ответ написан
PavelK
@PavelK
Вам нужно обратиться к элементу, проследовав по всем уровням вложенностей, например так:
$categoryID =  $foreas[  "ITEM"  ][ "CATEGORY_ID"  ]  ;

Вот так Ваш массив выглядит, если разобрать его по уровням:
FIELDTRANS OBJECT ( 
	[TITLE] => ТРАНСПОРТ 
	[IS_PUBLIC] => 1 
	[SQL] => INT(11) NULL DEFAULT NULL 
	[NAME] => TRANS 
	[ELEMENT_NAME] => TRANS 
	[FILTER_TYPE] => 
	[FILTER_HINT] => 
	[ELEMENT_TITLE] => ТРАНСПОРТ 
	[ALLOW_INDEX] => 1 
	[ITEM] => ARRAY ( 
		[PHONE] => 
		[CATEGORY_ID] => 2
		[CTYPE_NAME] => BOARD 
		[CTYPE_ID] => 9 
	) 
	[IS_VIRTUAL] => 
	[IS_HIDDEN] => 
	[RULES] => ARRAY ( 

	) 
	[OPTIONS] => ARRAY ( 
		[IS_REQUIRED] => 
		[IS_DIGITS] => 
		[IS_NUMBER] => 0 
		[IS_ALPHANUMERIC] => 
		[IS_EMAIL] => 
		[IS_UNIQUE] => 
		[LABEL_POS] => LEFT 
		[LABEL_IN_LIST] => LEFT 
		[LABEL_IN_ITEM] => LEFT 
		[PROFILE_VALUE] => 
	) 
	[DATA] => ARRAY ( 

	) 
	[CLASS] => 
	TRANS [ID] => TRANS 
	[CTYPE_ID] => 9 
	[HINT] => 
	[ORDERING] => 14 
	[FIELDSET] => 
	[TYPE] => TRANS 
	[IS_IN_LIST] => 1 
	[IS_IN_ITEM] => 1 
	[IS_IN_FILTER] => 
	[IS_PRIVATE] => 
	[IS_FIXED] => 
	[IS_FIXED_TYPE] => 
	[IS_SYSTEM] => 
	[VALUES] => КАМАЗ ЛЕГКОВАЯ МАШИНА 
	[GROUPS_READ] => ARRAY ( 
		[0] => 0 
	) 
	[GROUPS_EDIT] => ARRAY ( 
		[0] => 0 
	) 
	[DEFAULT] => КАМАЗ ЛЕГКОВАЯ МАШИНА 
	[HANDLER_TITLE] => ТРАНСПОРТ 
)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
etulupov
@etulupov
php, xml, xslt
echo (int)$foreas['ITEM']['CATEGORY_ID']; //для числа
echo (string)$foreas['ITEM']['CATEGORY_ID']; //для строки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы