Добрый день. Нужна помощь по обработке массива, не могу понять как сделать: Есть из 100 элементов массив вида: PHP: $array = array( '0' = > '22', ... '99' = > '8'); Нужно каждые элементы с номерами 0, 1, 2, 3, 4 и далее с прибавкой 5 занести в новый массив при этом номер элемента у первых 5 должен быть одинаковым а у следующих 5 элементов на 1 больше в котором получается будут 20 элементов перебирая данный массив нужно сделать массив вида: PHP: $array_2[0]['one']='22' ... $array_2[0]['five'] .... $array_2[19]['one'] ... $array_2[19]['five']='8'
@lamok Код (Text): foreach($arraay as $key=>$value){ if($key<5){$newarray[$key]=$value+5;}else{$newarray[$key+1]=$value+5;} но условия задачи не ясны..
Вот что пока придумал, заодно по яснее будет что нужно PHP: $j= 0; $k = 0; $l = 1; foreach ( $t as $r) { if ( $i == $k ) { $data_arr[$j]['one'] = $r; $j = $j +1; $k = $k + 6; } //вот это условие прописывать для каждого нужно получается, хотелось покороче.. if ( $i == $l ) { $data_arr[$j]['two'] = $r; $j = $j +1; $l = $l + 6; } //а вот это уже не идет т.к. $i = следующему элементу $i = $i +1;}
Мне нужно создать массив который будет содержать в первом элементе двумерный массив со значением элемента 1,2,..5 из первого массива и так для каждых 5 елементов вот что я придумал (только уже элементов 7 нужно) - это для 1 и 2 элемента, просто если элементов будет много код увеличивается очень сильно PHP: $i= 0; $j= 0; $k = 0; foreach ( $t as $r) { //для элементов с номерами, 0, 6, 12 и тд if ( $i == $k ) { $data_arr[$j]['one'] = $r; $j = $j + 1; $k = $k + 6; } $i = $i +1; } $i= 0; $j= 0; $k = 1; foreach ( $t as $r) { //для элементов с номерами, 1, 7, 13 и тд if ( $i == $k ) { $data_arr[$j]['two'] =$r); $j = $j + 1; $k = $k + 6; } $i = $i +1; }
Нет не так. есть массив 0=11, 1=5, 2=5, 3=1, 4=3, 5=56, 6=44, 7=23, 8=22 9=66 мне нужны каждые первые пять элементов, первые пять в новый массив с индексом 0, вторые пять с индексом 1 получается приблизительно такой новый массив [0][one]=11 [0][two]=5 [0][three]=1 ... [0][five]=3 [1][one]=56 [1][two]=5 [1][three]=1 ... [1][five]=66 только еще бы хотелось чтобы кратность элементов можно было менять (не каждые пять а каждые 10 к примеру)!
походу - разбить типа на группы? то есть выходной массив - массив групп по N элементов в каждой? тогда как то так PHP: $input = array(1,2,3,4,5,6,7,8,9,10,33,44,55); $N = 3; $output = array(); for ($i=0; $i<COUNT($input);$i=$i+$N) { $output[] = array_slice($input, $i, $N); } print_r($output); ну по последней группе там надо определиться - или остатки как щас... или если хотите - то дополняете нулями или еще как
то что надо... Спасибо. А можно не индексы к результируещему массиву а слова, это удобнее? т.е. не [0][1]=11 а [0][one]=11
Вплоть до того, что даже есть свой штатный сервис телепатии - https://ad-soft.info/servis-telepaticheskogo-opredeleniya-tehzadaniya-na-rabotu