Спасибо за любую помощь.Это меня поставило в тупик.Начнем с этого:
Array
(
[numCols] => 8
[timePointLabel1] => Week1
[timePointLabel4] => Week2
[timePointLabel7] => Week3
[0] => Array
(
[Location0_name] => Name1
[colText01] => 2
[colText07] => 4
)
[1] => Array
(
[Location1_name] => Name2
[colText11] => 9
[colText14] => 7
)
)
Я хочу, чтобы номера NNN в timePointLabelsNNN шли в числовом порядке, начиная с 0. В настоящее время номера NNN равны 1, 4, 7.
У нас также естьмассив в массиве.N в полях colTextN относятся к меткам времени.Например, timePointLabel4 связан с colText04, colText14 и любым другим colText, который заканчивается одной цифрой 4.
Я выяснил, как динамически изменить порядок NNN, и поэтому я получаю это:
Array
(
[numCols] => 8
[timePointLabel0] => Week1
[timePointLabel1] => Week2
[timePointLabel2] => Week3
[0] => Array
(
[Location0_name] => Name1
[colText01] => 2
[colText07] => 4
)
[1] => Array
(
[Location1_name] => Name2
[colText11] => 9
[colText14] => 7
)
)
См. NNNs в timePointLabelNNNs теперь 0, 1, 2.
Как я это сделал?С этим кодом:
$timePointLabelCount = preg_grep("/^timePointLabel(\d)+$/",array_keys($this->data));
// go through the time point label array and create a new array to use
// it is assigned the correct order of keys, starting with 0 (since arrays start with 0 anyway)
foreach ($timePointLabelCount as $timePointCustom) {
$timePointCustomArray[] = $this->data[$timePointCustom];
unset($this->data[$timePointCustom]);
}
$timePointNum = 0;
// insert the correct timepoint data, in the correct order, into the array
foreach ($timePointCustomArray as $setTimePointData) {
$this->data['timePointLabel' . $timePointNum] = $setTimePointData;
$timePointNum++;
}
Но colTexts по-прежнему проблема.Для значений N в colTextN все, что равно 1, теперь должно быть 0, 4 - 1, а 7 - 2.
Так что я хочу, чтобы мой окончательный массив выглядел следующим образом:
Array
(
[numCols] => 8
[timePointLabel0] => Week1
[timePointLabel1] => Week2
[timePointLabel2] => Week3
[0] => Array
(
[Location0_name] => Name1
[colText00] => 2
[colText02] => 4
)
[1] => Array
(
[Location1_name] => Name2
[colText10] => 9
[colText11] => 7
)
)
Я подозреваю, что это потребует некоторого умного использования цикла foreach.