- 1
- 2
- 3
- 4
foreach($arResult["ITEMS"] as $k=>$arItem){
list($d,$m,$y) = explode(" ",$arItem["DISPLAY_ACTIVE_FROM"]);
$arResult["ITEMS"][$k]["DISPLAY_ACTIVE_FROM"] = $d." ".convertRusMonth($m)." ".$y;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+155
foreach($arResult["ITEMS"] as $k=>$arItem){
list($d,$m,$y) = explode(" ",$arItem["DISPLAY_ACTIVE_FROM"]);
$arResult["ITEMS"][$k]["DISPLAY_ACTIVE_FROM"] = $d." ".convertRusMonth($m)." ".$y;
}
Преобразование даты, необходимо изменить название месяца, к пример февраль должен стать февраля. Формат месяца заранее известен.
Работа с элементами по ссылке процентов на 30 быстрее, чем обращение по ключу.
А заменять имя месяца проще, через str_replace передавая массивы значений.
2. Формат даты поменяется (например, не полное название месяца, а сокращенное) и будете по всему коду искать где менять, вместо правки одной функции. Да и без изменения формата перед каждой такой заменой задавать массив преобразования совсем не красиво
Я не говорил что надо убрать функцию.Функцию можно оставить, но делать заменой, без разбиения даты и собирания обратно.
>foreach($arResult as &$arItem)
Это для php4 актуально, а в 5-ке значения и так по ссылкам передаются
То у всех элементов изменится значение?
В php4 на каждой итерации цикла создавалась копия элемента $arItem и чтобы избежать этого, передавали значение по ссылке.
В php5 оно сразу передается по ссылке, но копия создается уже при попытке записи в эту переменную (copy-on-write в действии).
Ну а если в foreach нужно изменять массив, то тут - да, только по ссылке передавать.
в одном из проектом задрался переписывать такие конструкция, т.к. на хосте был только php4 и ниибёт!
Спасибо за информацию.