Вы имеете в виду что-то подобное?
Это довольно длинное (и грязное) предложение, и, вероятно, есть лучший способ использовать один из методов массива PHP , но здесь идет речь:
$array = array('123' => 'should be 6', '14' => 'should be 5', '12' => 'should be 3');
$new_array = array();
foreach ($array as $key => $val) {
$key_exp = str_split($key);
$new_key = 0;
foreach ($key_exp as $key_int) $new_key += $key_int;
$new_array[$new_key] = $val;
}
Дает эти выходные данные, как и ожидалось:
array(3) {
[6]=>
string(11) "should be 6"
[5]=>
string(11) "should be 5"
[3]=>
string(11) "should be 3"
}
Обратите внимание, что вы можете и, вероятно, столкнетесь с конфликтами клавиш, используя этот метод.