PHP: добавлять слово из массива в строку через каждые 5 слов - PullRequest
0 голосов
/ 13 июля 2020

У меня есть строка, и я хотел ставить слово через каждые 5 слов. Слово поступает из массива.

French History Maths Physics Spanish Chemistry Biology English DT Maths History DT Spanish English French RS

, и я хочу получить 2 слова из массива, а затем вставить его в строку выше после 5 слов.

$words = arrray(a, able, about, above, abst, accordance, according, accordingly, across, act, actually, added, adj);

Как этот вывод:

French History Maths Physics Spanish a able about above abst Chemistry Biology English DT Maths according according accordingly across act Spanish English French RS.

1 Ответ

1 голос
/ 13 июля 2020
$string = 'French History Maths Physics Spanish Chemistry Biology English DT Maths History DT Spanish English French RS';
$words  = array('a', 'able', 'about', 'above', 'abst', 'accordance', 'according', 'accordingly', 'across', 'act', 'actually', 'added', 'adj');
$result = [];

$xpld = explode(' ',$string);
if(!empty($xpld))
{
  $count = 0;
  for ($i=0; $i < sizeof($xpld) ; $i++) 
  {
    if ($i % 5 == 0 && $i > 0) 
    {
      for ($j=$count; $j < $count + 5 ; $j++) 
      {
        $result[] = @$words[$j];
      }
      $count = $j;
    }
    $result[] = $xpld[$i];
  }
}
$result = implode(' ',$result);
echo $result;

Приведенный выше код работает так же, как в вашем примере, но я не знаю, эффективен он или нет, обратите внимание, что я использовал suppress @, чтобы слова вашего массива не вышли из индекса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...