$params = [
['param' => 'option1', 'values' => [1, 2, 3], 'index' => -1],
['param' => 'option2', 'values' => [1, 2, 3, 4], 'index' => -1],
['param' => 'option3', 'values' => [1, 2], 'index' => -1],
];
function getNext($params) {
//начинаем с последнего параметра
$pos = count($params) - 1;
// Добавляем к значению index единицу, если она равна кол-ву в массиве
// то присваиваем index -1, и увеличиваем на единицу предыдущий параметр и т.д.
while(++$params[$pos]['index'] === count($params[$pos]['values'])) {
$params[$pos]['index'] = -1;
if(0 === $pos--) break;
}
if($pos < 0) return false;
// Составляем результат, получая от каждого параметра элемент массива с индексом index
// Если index === -1, то игнорируем
$retVal = [];
foreach($params as $elem) {
if($elem['index'] >= 0) retVal[] = [$elem['param'], $elem['values'][$elem['index']]];
}
return $retVal;
}
Я думаю, все дело в верхнем регистре ProfilePage