Лучший отвечающий
Набор массивов внутри одной из колонок хэш-таблицы: как разобрать?

Вопрос
-
Есть хэш-таблица из 2х столбцов "X" и "Y".
В столбце "X", в каждой строке, содержится небольшой массив. А в столбце "Y", в каждой строке, просто string-переменная (слово).
Задача: сопоставить слова в строках столбца "Y" с содержимым релевантных массивов (столбец "X"), но чтобы вместо массивов как объектов были просто string с содержимым этих массивов.
Кто может помочь?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
25 августа 2014 г. 9:40Модератор
Ответы
-
Если политику уникальны для каждого сервера и имена не пересекаются:
$new = @{} $old.GetEnumerator() | Foreach { $val = $_.Value $_.Key | Foreach {$new.Add($_,$val)} }
Если неуникальны:
$new = @() $new = $old.GetEnumerator() | Foreach { $val = $_.Value $_.Key | Foreach { New-Object PsObject -Property @{ Policy = $_ Name = $val } } }
- Помечено в качестве ответа Nikita PanovModerator 25 августа 2014 г. 11:27
25 августа 2014 г. 11:15Отвечающий
Все ответы
-
Приведите пример, вывода данных и какой конечный результат требуется.25 августа 2014 г. 10:00Отвечающий
-
Name Value
---- -----
{AIRou-ca-MOS_Set_Zabbix_A... AIRCLEAR01
{AIRdo-cw-MSFT_DMZ_... MSFS9767
{AIRdo-cw-MSFT_DMZ_... MSFS9751
{AIRou-ca-MOS_Set_Zabbix_A... AIREXMOSCCM1
{AIRou-ca-MOS_Set_Zabbix_A... AIREXMOSCCM
{AIRdo-cw-MSFT_DMZ_... MSFS9751
{AIRdo-cw-MSFT_DMZ_... MSFS9725
{AIRdo-cw-MSFT_DMZ_... MSFS9767
В данном варианте Name это массивы с именами политик, которые применяются к соответствующим серверам из столбца Value.Фактически, чтобы получить нормальное соответствие между именем сервера и его политиками приходится делать отдельный цикл, чтобы влезать внутрь каждого массива и получать полный список политик для каждого сервера. Хотелось бы, чтобы в столбце Name были просто строковые переменные, содержащие имена политик.
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
25 августа 2014 г. 10:58Модератор -
Если политику уникальны для каждого сервера и имена не пересекаются:
$new = @{} $old.GetEnumerator() | Foreach { $val = $_.Value $_.Key | Foreach {$new.Add($_,$val)} }
Если неуникальны:
$new = @() $new = $old.GetEnumerator() | Foreach { $val = $_.Value $_.Key | Foreach { New-Object PsObject -Property @{ Policy = $_ Name = $val } } }
- Помечено в качестве ответа Nikita PanovModerator 25 августа 2014 г. 11:27
25 августа 2014 г. 11:15Отвечающий -
Супер!
Простите за оффтоповый вопрос, а вы в Мск территориально находитесь?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
25 августа 2014 г. 11:28Модератор -
Супер!
Простите за оффтоповый вопрос, а вы в Мск территориально находитесь?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
Нет, Иваново ))25 августа 2014 г. 11:40Отвечающий -
А можете какие-нибудь контакты ваши оставить?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
26 августа 2014 г. 5:59Модератор -
А можете какие-нибудь контакты ваши оставить?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
http://kazunposh.wordpress.com/about/ - аккаунт Skype26 августа 2014 г. 6:08Отвечающий -
semic0nduct0r
Я к вам стукнулся, можете добавить?
I'm inspired! Are you? Где смекалка и сноровка, там и палка что винтовка.
28 августа 2014 г. 9:20Модератор