За последние 24 часа нас посетили 22758 программистов и 1256 роботов. Сейчас ищут 709 программистов ...

двузначные числа в str_replace

Тема в разделе "Решения, алгоритмы", создана пользователем Wspoer, 7 апр 2017.

  1. Wspoer

    Wspoer Новичок

    С нами с:
    7 апр 2017
    Сообщения:
    3
    Симпатии:
    1
    PHP:
    1. $n = array(1, 2, 3, 33);
    2. $v = array('один', 'два',  'три',  'тридцать три');
    3. $mergeArr = str_replace($n, $v, '1, 2, 33');
    4. echo $mergeArr; //выводит: один,два,тритри
    Не могу найти подходящей функции/написать сам, чтобы правильно выводило?
     
    #1 Wspoer, 7 апр 2017
    Последнее редактирование модератором: 7 апр 2017
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    можно попробовать отсортировать $n и $v в обратном порядке, тогда 33 будет заменено первым, дальше остальное
     
  3. Wspoer

    Wspoer Новичок

    С нами с:
    7 апр 2017
    Сообщения:
    3
    Симпатии:
    1
    к сожалению не могу нарушить порядок, у меня 2 больших массива и они должны идти по порядку, а шаблон постоянно меняется
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    он будет нарушен?
     
    Fell-x27 нравится это.
  5. Wspoer

    Wspoer Новичок

    С нами с:
    7 апр 2017
    Сообщения:
    3
    Симпатии:
    1
    Подсказали мне, может кому понадобится
    Код (Text):
    1. $n = array(1, 2, 3, 33);
    2. $v = array('один', 'два', 'три', 'тридцать три');
    3. $repl = array_combine($n, $v);
    4. $mergeArr = strtr('1, 2, 33', $repl);
    5. echo $mergeArr; // один, два, тридцать три
     
    denis01 нравится это.
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    $n = array(1, 2, 33, 3);
    $v = array('один', 'два', 'тридцать три', 'три');
     
    denis01 нравится это.