将单词/短语/句子分为三部分

我想把这个词/短语/句子分成三部分。fld_example是单词/短语/句子的存储位置。


堆叠流量Abcpqr(UR)


流利的英语会话Defklmno(1WIR)


英语水平GHI(2WIR)


测试ADG(3WIR)


堆栈溢出Abcpqr(UR)的输出应为


[0]堆栈溢出


[1] Abcpqr


[2](UR)


和英语会话Defklmno(1WIR)的流利程度


[0]叠放过流


[1] Defklmno


[2](1WIR)


和英语熟练程度GHI(2WIR)


[0]溢流


[1] GHI


[2](2WIR)


和用于测试ADG(3WIR)


[0]测试


[1] ADG


[2](3WIR)


我使用了此代码,但仅适用于测试(3WIR)


                                      <?php

                                      $Original = $row['fld_example'];                                  

                                      $OriginalExplode = explode(' ', $Original);

                                      ?>


<input name="example0" id="example0" value="<?php echo $OriginalExplode[0]; ?>" type="text" autocomplete="off" required>


<input name="example1" id="example1" value="<?php echo $OriginalExplode[1]; ?>" type="text" autocomplete="off" required>


慕妹3146593
浏览 140回答 2
2回答

慕沐林林

PHP代码为:function splitAtLastWord($sentence){&nbsp; &nbsp; return preg_split("/\s+(?=\S*+$)/", $sentence);}$sentence = "Fluency in English Conversation Defklmno (1WIR)";&nbsp;&nbsp;list($begin, $end)&nbsp; &nbsp; = splitAtLastWord($sentence);list($first, $middle) = splitAtLastWord($begin);$result = [$first, $middle, $end];&nbsp;echo "<pre>" . print_r($result, TRUE) . "</pre>";输出为:Array(&nbsp; &nbsp; [0] => Fluency in English Conversation&nbsp; &nbsp; [1] => Defklmno&nbsp; &nbsp; [2] => (1WIR))您也可以编写不带正则表达式的相同函数:function splitAtLastWord($sentence){&nbsp; &nbsp; $words = explode(" ", $sentence);&nbsp; &nbsp; $last&nbsp; = array_pop($words);&nbsp; &nbsp; return [implode(" ", $words), $last];}老实说,这是一种更好的方法。这是一种计算上更有效的方法:function splitAtLastWord($sentence){&nbsp; &nbsp;$lastSpacePos = strrpos($sentence, " ");&nbsp; &nbsp;return [substr($sentence, 0, $lastSpacePos), substr($sentence, $lastSpacePos + 1)];&nbsp;}看起来不太好看,但速度更快。无论如何,定义这样一个单独的函数很有用,您可以在其他地方重用它。
打开App,查看更多内容
随时随地看视频慕课网APP