Показать сообщение отдельно
  #29 (permalink)  
Старый 16.09.2017, 12:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
Спасибо!
Не за что. Я не знаю что за такой пакет этих цифр, но учтите, что если их количество в массиве будет не четным, то в результирующем массиве будет дубликат одного значения. Если нечетное число также ожидается, тогда нужно так:

$a = [
    1234579,
    2456901,
    1234598,
    2456776,
    2456993,
    1234567,
    1234555,
    3245089,
    1234778
];
 
$len = 4;

if(count($a) & 1) array_push($a, null); //дополнить массив до четного
 
for($i = 0, $j = count($a)-1, $k = count($a)/2; $i < $k; $i++, $j--) {
    $group[substr($a[$i], 0, $len)][] = $a[$i];
    if($a[$j]) $group[substr($a[$j], 0, $len)][] = $a[$j]; 
}
 
print_r($group);
 
print_r(array_values($group));

Последний раз редактировалось laimas, 16.09.2017 в 14:17.
Ответить с цитированием