Может быть полезно думать о массиве как об адресе.
123 Main St Springfield MA
Используя этот пример, мой первый массив будет массивом состояний. В каждом штате будет множество городов, а в городах - улицы, и, наконец, улицы содержат отдельные адреса.
С помощью этого массива мы можем легко создать список рассылки с каждым адресом. Просто переберите каждый массив, и вы сможете распечатать каждый адрес или все, что вам нужно сделать.
Глядя на ваш пример, я не считаю многомерные массивы подходящими. Если главное, что вы хотите сделать со своими массивами, это найти подмножества ваших данных, например людей с женскими / белокурыми / голубыми глазами. Я бы последовал предложению использовать класс. Когда вы смотрите на объект человека в массиве, вам нужно знать значения индекса, указывающие на этого человека, чтобы выяснить эти характеристики.
Другим примером, который может быть полезен, является интернационализация сообщений в приложении. Массивами могут быть язык, состояние (ошибка, предупреждение, информация), идентификатор сообщения (строки сообщений массива).
Что касается заполнения массивов, можно использовать только несколько циклов for, если данные были отсортированы. В противном случае проанализируйте ваши входные данные, чтобы определить соответствующие индексы.