示例:
thisisline>and>1
thisisanother>line>something>13
just>another>line>143
short>11
我的数据库中有关于列' profile'的这类数据。我需要的是从数据库中选择列user_name和profile,其中在'>'
的最后一次出现之后,个人资料具有5个最高值答案 0 :(得分:1)
首先,你必须从你的行中提取数字。然后,订购它们并拿走你想要的那些。
$lines = "thisisline>and>1
thisisanother>line>something>13
just>another>line>143
short>11";
$tmp = explode("\n", $lines); //separate lines
$numbers = array();
foreach($tmp as $line)
{
$numbers[] = substr($line, strrpos($line, ">") + 1); //extract number
}
rsort($numbers); //order your results
$count = 2; //define the count of results
$result = array_slice($numbers, 0, $count); //just take the ones which you want
var_dump($result);
你会把你的结果作为一个数组。
php沙箱中的工作示例here。
答案 1 :(得分:0)
$theNumber = substr($string, strrpos($string, ">")+1);
这应该为您提供每行的编号。然后,您只需比较数字。
答案 2 :(得分:0)
这样做。 将所有行放入数组,解析它们,将最后一个值存储在数组中,对其进行排序,然后执行所需操作。
$lines = 'thisisline>and>1
thisisanother>line>something>13
just>another>line>143
short>11';
define('NUM_TO_GET', 2); //Get the two highest. Rewrite it to 5!
$array = explode("\n", $lines);
$results = array();
foreach ($array as $line) {
$tmp = explode('>', $line);
$results [] = $tmp[count($tmp) - 1];
}
rsort($results);
for ($i = 0; $i < NUM_TO_GET; $i++) {
if (isset($results[$i])) {
echo $results[$i] . "<br />";
} else {
break;
}
}