我怎么能从PHP中的字符串中删除单词

时间:2015-08-25 21:46:58

标签: php sql trim

我使用以下代码显示sql查询的前5个结果;

    <?php
    $query = "SELECT location, COUNT(location) AS qty FROM ecmt_memberlist GROUP BY location ORDER BY qty DESC LIMIT 0,5"; 

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
{
    echo "<span class='graphValue'>x".$row['qty']."</span> " .      $row['location'] . "<br />";

} ?>

这是显示我的结果字符串,如下所示:

  • x46月亮20 - EVE学院的姐妹们
  • x34月亮7 - Ammatar舰队装配厂
  • x28 Jita x11 Jita IV - Moon 4 - Caldari Navy Assembly Plant
  • x11 Jita IV - Moon 4
  • x9 Lonetrek III - FUUUFAGOLAS

如何减少$ row [&#39; location&#39;]以显示第一个&#34; - &#34;之前的字词。例如;

  • x46 Moon 20
  • x34 Moon 7
  • x28 Jita x11 Jita IV
  • x11 Jita IV
  • x9 Lonetrek III

5 个答案:

答案 0 :(得分:4)

只需使用strstr()并在针前打印,例如

strstr($row['location'], "-", TRUE);

答案 1 :(得分:3)

虽然你可以用PHP做其他的建议,我觉得用mysql做的更好:

  $query = "SELECT SUBSTRING_INDEX(location,'-',1) as location, COUNT(location) AS qty FROM ecmt_memberlist GROUP BY location ORDER BY qty DESC LIMIT 0,5"; 

答案 2 :(得分:1)

echo explode('-', $row['location'])[0];

OR

echo preg_replace('/\-\s.+/i', '', $row['location']);

答案 3 :(得分:1)

$str='x46 Moon 20 - Sisters of EVE Academy';

$str2=substr($str,0,strpos($str,' -'));

echo $str2;

答案 4 :(得分:0)

有几种不同的方法可以做到这一点,一种使用explode()

$location = explode("-", $row['location']);

然后使用echo $location[0];调用“ - ”之前的所有内容,请参阅PHP Explode

或者您可以使用strstr()

$location = strstr($row['location'], '-', true);

并仅使用$location调用它,因为将第3个参数设置为true将返回第一个第2个参数出现之前的所有内容。见PHP strstr

或者您可以使用split()

$location = split("-", $row['location']);

并使用$location[0]

进行调用