PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Строитель
Отправлено: 29 Октября, 2018 - 15:47:36
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Glomar пишет: Там должна идти замена в массиве.
Там идёт замена в массиве, а заменяемые значения я подправил:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"2050000" ,
"2050001" ,
"2050002" ,
"2050003" ,
"2050004" ,
"2050005" ,
"2050006" ,
"2050007" ,
"2050008"
) ,
"2050011" ,
"2050012" ,
"2050013" ,
"2050014" ,
"2050015" ,
"2050016" ,
"2050017" ,
"2050018" ,
"2050019"
) ,
"2050030" ,
"2050031" ,
"2050032" ,
"2050033" ,
"2050034" ,
"2050035" ,
"2050036" ,
"2050037" ,
"2050038" ,
"2050039"
) ,
"2050022" ,
"2050023" ,
"2050024" ,
"2050025" ,
"2050026" ,
"2050028" ,
"2050029" ,
"2050030" ,
"2050031"
) ,
) ;
foreach ( $array as & $arr ) {
$tmp = [ ] ;
foreach ( $arr as $k => & $val ) {
}
}
}
Glomar
Отправлено: 29 Октября, 2018 - 15:48:49
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Окт. 2018
Помог: 0 раз(а)
Строитель пишет: Glomar , вроде бы так
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
(
(
[ 1] => 2025000
[ 2] => 2025001
[ 3] => 2025002
[ 4] => 2025003
[ 5] => 2025004
[ 6] => 2025005
[ 7] => 2025006
[ 8] => 2025007
[ 9] => 2025008
[ 10] => 202500
)
(
[ 1] => 2025011
[ 2] => 2025012
[ 3] => 2025013
[ 4] => 2025014
[ 5] => 2025015
[ 6] => 2025016
[ 7] => 2025017
[ 8] => 2025018
[ 9] => 2025019
[ 10] => 2025020 << не вывел
[ 11] => 2025021
[ 12] => 2025022
[ 13] => 2025023
[ 14] => 2025024
[ 15] => 2025025
[ 16] => 2025026
[ 17] => 2025027
[ 18] => 2025028
[ 19] => 2025029
)
(
[ 1] => 2025131
[ 2] => 2025132
[ 3] => 2025133
[ 4] => 2025134
[ 5] => 2025135
[ 6] => 2025136
[ 7] => 2025137
[ 8] => 2025138
[ 9] => 2025139
[ 10] => 2025140<< не вывел
[ 11] => 2025141
[ 12] => 2025142
[ 13] => 2025143
[ 14] => 2025144
[ 15] => 2025145
[ 16] => 2025146
[ 17] => 2025147
[ 18] => 2025148
[ 19] => 2025149
[ 20] => 2025150<< не вывел
[ 21] => 2025151
[ 22] => 2025152
[ 23] => 2025153
[ 24] => 2025154
[ 25] => 2025155
[ 26] => 2025156
[ 27] => 2025157
[ 28] => 2025158
[ 29] => 2025159
)
(
[ 1] => 2025031
[ 2] => 2025032
[ 3] => 2025033
[ 4] => 2025034
[ 5] => 2025035
[ 6] => 2025036
[ 7] => 2025037
[ 8] => 2025038
[ 9] => 2025039
[ 10] => 2025040<< не вывел
[ 11] => 2025041
[ 12] => 2025042
[ 13] => 2025043
[ 14] => 2025044
[ 15] => 2025045
[ 16] => 2025046
[ 17] => 2025047
[ 18] => 2025048
[ 19] => 2025049
)
(
[ 1] => 2025100<< не вывел
[ 2] => 2025101
[ 3] => 2025102
[ 4] => 2025103
[ 5] => 2025104
[ 6] => 2025105
[ 7] => 2025106
[ 8] => 2025107
[ 9] => 2025108
[ 10] => 2025109
[ 11] => 2025110<< не вывел
[ 12] => 2025111
[ 13] => 2025112
[ 14] => 2025113
[ 15] => 2025114
[ 16] => 2025115
[ 17] => 2025116
[ 18] => 2025117
[ 19] => 2025118
[ 20] => 2025119
[ 21] => 2025120
[ 22] => 2025121
[ 23] => 2025122
[ 24] => 2025123
[ 25] => 2025124
[ 26] => 2025125
)
(
[ 1 ] => 2025126
[ 2 ] => 2025127
[ 3 ] => 2025128
[ 4 ] => 2025129
[ 5 ] => 2025130
)
)
*/
Строитель
Отправлено: 29 Октября, 2018 - 23:22:08
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Glomar , написал решение
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"2050000" ,
"2050001" ,
"2050002" ,
"2050003" ,
"2050004" ,
"2050005" ,
"2050006" ,
"2050007" ,
"2050008"
) ,
"2050010" ,
"2050011" ,
"2050012" ,
"2050013" ,
"2050014" ,
"2050015" ,
"2050016" ,
"2050017" ,
"2050018" ,
"2050019"
) ,
"2050030" ,
"2050031" ,
"2050032" ,
"2050033" ,
"2050034" ,
"2050035" ,
"2050036" ,
"2050037" ,
"2050038" ,
"2050039"
) ,
"2050022" ,
"2050023" ,
"2050024" ,
"2050025" ,
"2050026" ,
"2050028" ,
"2050029" ,
"2050030" ,
"2050031"
) ,
"2025100" , // <<
"2025101" ,
"2025102" ,
"2025103" ,
"2025104" ,
"2025105" ,
"2025106" ,
'2025107' ,
"2025108" ,
"2025109" ,
"2025110" , // <<
"2025111" ,
"2025112" ,
"2025113" ,
"2025114" ,
"2025115" ,
"2025116" ,
"2025117" ,
"2025118" ,
"2025119" ,
"2025120" ,
"2025121" ,
"2025122" ,
"2025123" ,
"2025124" ,
"2025125"
)
) ;
parse_array( $array ) ;
function parse_array( & $array ) {
$var_ini = function ( ) { return [ 'keys' => [ ] , 'trigger' => 0] ; } ;
foreach ( $array as & $arr ) {
foreach ( $arr as $key => & $item ) {
$char != 0 ?: $trigger = 1 ;
! $trigger ?: $keys [ $key ] = $char ;
if ( join ( $keys ) == '0123456789' ) { $substr = substr ( $arr [ $k ] , 0
, - 1
) ; }
}
}
}
Результат:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
0 =>
0 => string '2050000'
1 => string '2050001'
2 => string '2050002'
3 => string '2050003'
4 => string '2050004'
5 => string '2050005'
6 => string '2050006'
7 => string '2050007'
8 => string '2050008'
1 =>
0 => string '205001'
2 =>
0 => string '205003'
3 =>
0 => string '2050009'
4 =>
0 => string '2050020'
5 =>
0 => string '2050022'
1 => string '2050023'
2 => string '2050024'
3 => string '2050025'
4 => string '2050026'
5 => string '2050028'
6 => string '2050029'
7 => string '2050030'
8 => string '2050031'
6 =>
0 => string '202510'
1 => string '202511'
2 => string '2025120'
3 => string '2025121'
4 => string '2025122'
5 => string '2025123'
6 => string '2025124'
7 => string '2025125'
(Отредактировано автором: 30 Октября, 2018 - 00:15:54)
Строитель
Отправлено: 30 Октября, 2018 - 09:55:29
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Glomar пишет: Правда я ваще не могу врубится как Вы это сделали.
Ну мне тоже пришлось подумать несколько часов над вашей задачкой ))
Я могу расставить комментарии в коде, если необходимо.
(Добавление)
PHP:
скопировать код в буфер обмена
function parse_array( & $array ) {
// Это инициализация переменных $keys и $trigger. Объявление этих переменных
// вынесено в отдельную функцию потому, что оно используется более одного
// раза в скрипте. А почему именно в анонимной функции? - потому, что
// она больше нигде не используется.
$var_ini = function ( ) { return [ 'keys' => [ ] , 'trigger' => 0] ; } ;
foreach ( $array as & $arr ) {
// Объявление переменных $keys и $trigger
foreach ( $arr as $key => & $item ) {
// Получить последний символ из текущего элемента массива
// Если последний символ равен нулю, установить значение
// переключателя $trigger равным единице
$char != 0 ?: $trigger = 1 ;
// Если переключатель активирован, сохранять текущий ключ $key
// и последний символ из текущего элемента массива $char
// в массив $keys
! $trigger ?: $keys [ $key ] = $char ;
// Если значения всех элементов массива $keys равны строке "0123456789",
// выполнить следующие действия:
if ( join ( $keys ) == '0123456789' ) { // 1. Получить первый ключ из массива в переменную $k
// 2. Получить подстроку из первого элемента массива (без последнего символа)
$substr = substr ( $arr [ $k ] , 0
, - 1
) ; // 3. Произвести замену десяти элементов в массиве $arr, начиная с позиции $k
// 4. Обнулить параметры (объявление переменных $keys и $trigger)
}
}
}
}
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB