如何在php中从字符串中删除单词

如何在php中从字符串中删除单词,php,sql,trim,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($resu

我使用以下代码显示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-夏娃姐妹学院
  • x34 Moon 7-安玛塔尔车队装配厂
  • x28吉塔x11吉塔四号-月球4号-卡尔达里海军装配厂
  • x11吉塔四号-月亮4号
  • x9 Lonetrek III-FUUUFAGOLAS
例如,我如何缩减$row['location']以显示第一个“-”之前的单词

  • x46月亮20
  • x34月亮7
  • x28吉塔x11吉塔IV
  • x11吉塔四号
  • x9 Lonetrek III
只需在打针前使用和打印,例如

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


虽然您可以像其他人建议的那样使用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"; 

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

然后用
echo$location[0]调用“-”前面的所有内容参见

或者您可以使用
strstr()

并使用
$location
调用它,因为将第三个参数设置为true将返回第二个参数第一次出现之前的所有内容。看

或者您可以使用
split()


并使用
$location[0]

explode()
函数调用它?如果结果的第一部分可能包含连字符,我建议将第二个参数更改为“-”(在任意一侧添加空格。OP可能需要使用
“-”
在不调用另一个函数的情况下过滤出空间,以
trim
-只是一个参考点。^^一个更健壮的解决方案可能是使用一个简单的正则表达式,如
preg\u replace('/-.*/',null,$row['location'])
preg\u replace('/\-\s.+/i','.$row['location']);在使用strstr时处理过它没有为“x28吉塔x11吉塔IV-Moon 4-Caldari海军装配厂”显示任何内容,只是x28。是的)你对)双“-“改变情况”)删除了它。
echo preg_replace('/\-\s.+/i', '', $row['location']);
$str='x46 Moon 20 - Sisters of EVE Academy';

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

echo $str2;
  $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"; 
$location = explode("-", $row['location']);
$location = strstr($row['location'], '-', true);
$location = split("-", $row['location']);