Мне нужно преобразовать плоский массив, где ключи массива указывают структуру, во вложенный массив, где родительский элемент становится нулевым элементом, т.е. в примере:
$education['x[1]'] = 'Georgia Tech';
Необходимо преобразовать в:
$education[1][0] = 'Georgia Tech';
Вот пример входного массива:
$education = array(
'x[1]' => 'Georgia Tech',
'x[1][1]' => 'Mechanical Engineering',
'x[1][2]' => 'Computer Science',
'x[2]' => 'Agnes Scott',
'x[2][1]' => 'Religious History',
'x[2][2]' => 'Women\'s Studies',
'x[3]' => 'Georgia State',
'x[3][1]' => 'Business Administration',
);
А вот что должно быть на выходе:
$education => array(
1 => array(
0 => 'Georgia Tech',
1 => array( 0 => 'Mechanical Engineering' ),
2 => array( 0 => 'Computer Science' ),
),
2 => array(
0 => 'Agnes Scott',
1 => array( 0 => 'Religious History' ),
2 => array( 0 => 'Women\'s Studies' ),
),
3 => array(
0 => 'Georgia State',
1 => array( 0 => 'Business Administration' ),
),
);
Я часами бился головой о стену и до сих пор не могу заставить ее работать. Я думаю, что смотрю на это слишком долго. Заранее спасибо.
P.S. Он должен быть полностью вложенным, то есть иметь возможность преобразовывать ключ, который выглядит следующим образом:
x[1][2][3][4][5][6]
P.P.S. У @Joseph Silber было умное решение, но, к сожалению, использование eval()
не подходит для этого, так как это плагин WordPress, а сообщество WordPress пытается исключить использование eval()
.