Подскажите php функцию

Тема в разделе "Как сделать...", создана пользователем verfaa, 5 фев 2014.

  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    374
    Симпатии:
    41
    Мне нужно сделать замену в строке. Есть массив, в котором ключ - искомая строка, значение - строка на которую необходимо сделать замену.
    Помню, что читал про встроенную функция, которая реализует данный функционал. а как она называется не помню. Искал на php.net в разделе массивы. но не нашел. Подскажите пожалуйста.
     
  2. setevoi

    setevoi Создатель

    Регистр.:
    10 апр 2013
    Сообщения:
    44
    Симпатии:
    14
    Можно пример массива ?
     
  3. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    351
    Симпатии:
    124
    Думал тут над решением, и понял, что вопрос был сформулирован неясно.
    Если тупо поменять местами ключ и значение, то array_flip.
    Если присвоить ключам их "значения" (не знаю зачем это, тут array_flip вроде решает всё), то
    Код:
    <?php
    $arr = array('key1'=>'value1', 'key2'=>'value2'); // предположим это Ваш массив
    $arr = array_flip($arr) ;
    foreach ($arr as $key => $value)
       {
         $arr[$key] = $key;
       }
    // Смотрим результат:
    echo '<pre>';
    print_r($arr);
    echo '</pre>';
    ?>
    
    Если в какой-то строке сделать поиск замену использовав при этом уже имеющийся массив, то Латтео ниже написал правильно...
     
    Последнее редактирование: 10 фев 2014
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.368
    Если я правильно понял, есть строка и массив значений для замены в этой строке, в таком случае используй код:
    PHP:
    //$array - массив в формате ключ - искомая подстрока, значение - строка на которую необходимо сделать замену.
    $new_str str_replace(array_keys($array), $array$old_str);