如何在php中从字符串中删除单词
我使用以下代码显示sql查询的前5个结果:如何在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
<?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
- 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']);