Приветствую!
Есть строка: 105BB - Ночник светодиодный с таймером выключения Citilux Медведь, белый
Вот как мне поменять местами элементы перед запятой, поставить перед запятой 1 и 2 элементы уже разбитой на массив строки.
Что бы получилось: Ночник светодиодный с таймером выключения Citilux Медведь - 105BB, белый
Можно было бы конечно что-то вроде
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
$text =$pizza;
$repl=array ($pieces[0]=>$pieces[4], $pieces[4]=>$pieces[0]);
echo "str_replace(): ".str_replace(array_keys($repl), array_values($repl), $text)."<br>";
echo "strtr(): ".strtr($text, $repl)."<br>";
но, проблема в том, что в каждой строке разное количество слов.
Потому надо отталкиваться от запятой, всё таки.
Как нибудь бы этим способом:
$s = 'Торты пирожные всё это - сладости';
$p = '#([а-яё]+) - ([а-яё]+)#ui';
$r = '$2 - $1';
$s = preg_replace($p,$r,$s);
echo $s;
?>
но что то не соображу, как...
Есть строка: 105BB - Ночник светодиодный с таймером выключения Citilux Медведь, белый
Вот как мне поменять местами элементы перед запятой, поставить перед запятой 1 и 2 элементы уже разбитой на массив строки.
Что бы получилось: Ночник светодиодный с таймером выключения Citilux Медведь - 105BB, белый
Можно было бы конечно что-то вроде
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
$text =$pizza;
$repl=array ($pieces[0]=>$pieces[4], $pieces[4]=>$pieces[0]);
echo "str_replace(): ".str_replace(array_keys($repl), array_values($repl), $text)."<br>";
echo "strtr(): ".strtr($text, $repl)."<br>";
но, проблема в том, что в каждой строке разное количество слов.
Потому надо отталкиваться от запятой, всё таки.
Как нибудь бы этим способом:
$s = 'Торты пирожные всё это - сладости';
$p = '#([а-яё]+) - ([а-яё]+)#ui';
$r = '$2 - $1';
$s = preg_replace($p,$r,$s);
echo $s;
?>
но что то не соображу, как...