X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Интересная задача
Witu
Witu
Topic Starter сообщение 14.3.2011, 16:02; Ответить: Witu
Сообщение #1


Нужно написать функцию которая принимает 2 аргумента

1. строка с текстом
2. массив

функция должна заменить все символы ? на соответствующий по порядку номер элемента в массиве то есть

входящие данные '?, world?' и array('Hello', '!!!')

func('?, world?', array('Hello', '!!!');

в результате должно получиться Hello, world!!!

preg_replace в этом нам не поможет так как все символы ? заменятся на первый элемент массива Hello и в итоге у нас получится Helll, worldHello

Ах да... в строке может быть сколько угодно знаков ? но их кол-во всегда соответствует кол-ву элементов массива

есть у кого какие соображения?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 14.3.2011, 16:19; Ответить: Webmaster_hb
Сообщение #2


а пройти по порядку, по одному элементу, и заменять не подходит ????
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
Topic Starter сообщение 14.3.2011, 16:21; Ответить: Witu
Сообщение #3


я надеюсь что есть более изящный подход :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 14.3.2011, 16:40; Ответить: Webmaster_hb
Сообщение #4


(HTMLandPHP @ 14.3.2011, 18:21) *
я надеюсь что есть более изящный подход :)

так какая задача стоит ?
сделать красиво ? код должен быть красивым ? работать должно быстрее ?
ведь любая текстовая функция делает тоже самое, перебирает символы по одному...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
Topic Starter сообщение 14.3.2011, 16:59; Ответить: Witu
Сообщение #5


Webmaster, изящно с точки зрения производительности
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DoctorX
DoctorX
сообщение 14.3.2011, 19:48; Ответить: DoctorX
Сообщение #6


пробегать по строке 1 и строить вторую строку где в место ? находятся слова из массива.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 14.3.2011, 21:22; Ответить: Mulder_hb
Сообщение #7


[PHP]<?php

function my_prepare() {
$args = func_get_args();
$string = array_shift($args);
$args = $args[0];
array_unshift($args, $string);
$tmpl =& $args[0];
$tmpl = str_replace("?", "%s", $tmpl);
return call_user_func_array("sprintf", $args);
}

$result = my_prepare('?, world?', array('Hello', '!!!'));
echo $result;[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 14.3.2011, 21:30; Ответить: Apay
Сообщение #8


самая короткая ф-я, которая пришла в голову
[PHP]function func( $str, $arr ){
$i = 0;
return preg_replace( '#\\?#e', '@$arr[$i++]', $str );
}
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
Topic Starter сообщение 15.3.2011, 20:15; Ответить: Witu
Сообщение #9


Apay, СПС пожалуй подойдет :) осталось разобраться каким образом это работает

ADDED одна ко веселая штука эти регулярки... из за модификатора такой компактный результат

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСоздание сайтов любой сложности (фреймворки, CMS), Верстка (адаптивная, простая, лендинг), шаблоны, скрипты, любая задача
21 ZaDrotom 15916 1.7.2019, 0:33
автор: stando82
Открытая тема (нет новых ответов) задача по Excel
простая, но срочная
4 tube 3160 20.5.2018, 17:33
автор: kirch
Открытая тема (нет новых ответов) есть интересная работа?Пишите !
9 lyah 4449 13.4.2013, 17:56
автор: lyah
Опрос (нет новых голосов) Опрос: Нужна интересная статья?
0 КСЮХА 1372 11.3.2012, 10:01
автор: КСЮХА
Открытая тема (нет новых ответов) Интересная статья-залог успеха любого сайта.
Предлагаю вам свои услуги в плане написания уникальных статей.
19 olya_borushko 6876 7.12.2011, 12:05
автор: olya_borushko


 



RSS Текстовая версия Сейчас: 20.4.2024, 10:46
Дизайн