1. Как объявить двумерный массив, если я точно знаю, что будет два "столбца", не знаю возможное количество элементов в этих столбцах? Их может быть 100, а может и 10000
Пишу:
Global $aKeys[100][2]
Но если элементов больше 100, то скрипт выдает ошибку "Array variable has incorrect number of subscripts or subscript dimension"
Решено:
Нужно задавать минимальное значение, а потом использовать функцию ReDim().
2. Как двумерному массиву присвоить сразу два значения (т.е. заполнить ряд $i)?
Вот так не работает
$aKeys[$i][1] = $aMatches[0]$aMatches[1]
пишет "error in expression"
Решено:
$aKeys[$i][0] = $aMatches[0]
$aKeys[$i][1] = $aMatches[1]
3. Вопрос, который представляет для меня трудную задачу:
У нас есть массив из строк следующего вида (как бы ключ и значение):
а > коза
а > коза
а > лошадь
б > собака
б > собака
б > коза
б > петух
c > зебра
c > зебра
c > слон
Необходимо для каждого уникального левого ключа вывести отсортированный по количеству список значений.
Т.е. скрипт должен вывести:
а > коза (2 шт.), лошадь (1 шт.)
б > собака (2 шт.), коза (1 шт.), петух (1 шт.)
с > зебра (2 шт.), слон (1 шт.)
Пишу:
Global $aKeys[100][2]
Но если элементов больше 100, то скрипт выдает ошибку "Array variable has incorrect number of subscripts or subscript dimension"
Решено:
Нужно задавать минимальное значение, а потом использовать функцию ReDim().
2. Как двумерному массиву присвоить сразу два значения (т.е. заполнить ряд $i)?
Вот так не работает
$aKeys[$i][1] = $aMatches[0]$aMatches[1]
пишет "error in expression"
Решено:
$aKeys[$i][0] = $aMatches[0]
$aKeys[$i][1] = $aMatches[1]
3. Вопрос, который представляет для меня трудную задачу:
У нас есть массив из строк следующего вида (как бы ключ и значение):
а > коза
а > коза
а > лошадь
б > собака
б > собака
б > коза
б > петух
c > зебра
c > зебра
c > слон
Необходимо для каждого уникального левого ключа вывести отсортированный по количеству список значений.
Т.е. скрипт должен вывести:
а > коза (2 шт.), лошадь (1 шт.)
б > собака (2 шт.), коза (1 шт.), петух (1 шт.)
с > зебра (2 шт.), слон (1 шт.)