但令人困惑的标题让我解释一下。我有一系列像这样的链接:
http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=690F9475D5288F3129F84364427B2B490B6ACE59.45C8F83DEE3DD361855B12AE538EA6349FF8EF9B&factor=1.25&id=d50e6528eb51ad54,18
http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=18&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=A68EAA3F7A2ECA2BB2BD6C35BF443C03E4BB1172.AD2FF9FDAF046B23F789FE1A7F7882DF9A355DE4&factor=1.25&id=d50e6528eb51ad54,5
http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=ABC8ACF6899C46CC992ECB5F6A6FD7E66383EA3D.0C8B707083203DC1153FB26586A94BFAC64D176B&factor=1.25&id=d50e6528eb51ad54
如果您查看这些网址的最末端,则会看到,18
,,5
等附加信息,并且最后一个链接没有这样的扩展名。
现在,我需要在我的代码中尽可能使用最后编号最大的链接。在这个例子中,我需要过滤掉第一个链接,因为它在末尾有最高的整数(18
)。
我会使用一系列if()
块,但在这种情况下,最后的整数可能会发生变化,因此这不是一个好的解决方案。
所以我基本上需要通过我的数组,检查哪一个链接在结尾有最高整数(注意它只有2位数)然后将它存储在另一个变量中。
任何人都可以提供一些有关如何有效执行此操作的示例/ psudo代码吗?
干杯。
答案 0 :(得分:1)
即使网址中的其他位置有逗号,也会有效:
$links = array("http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=690F9475D5288F3129F84364427B2B490B6ACE59.45C8F83DEE3DD361855B12AE538EA6349FF8EF9B&factor=1.25&id=d50e6528eb51ad54,18", "http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=18&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=A68EAA3F7A2ECA2BB2BD6C35BF443C03E4BB1172.AD2FF9FDAF046B23F789FE1A7F7882DF9A355DE4&factor=1.25&id=d50e6528eb51ad54,5", "http://somesite.com/videoplayback?ip=81.0.0.0&sparams=id,expire,ip,ipbits,itag,algorithm,burst,factor&fexp=905602&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1285056000&key=yt1&signature=ABC8ACF6899C46CC992ECB5F6A6FD7E66383EA3D.0C8B707083203DC1153FB26586A94BFAC64D176B&factor=1.25&id=d50e6528eb51ad54");
$max = 0;
$highestLink = "";
foreach ($links as $link) {
$data = explode(",", strrev($link));
$val = strrev($data[0]);
if (is_numeric($val)) {
$val = (int) $val;
if ($val > $max) {
$max = $val;
$highestLink = $link;
}
}
}
echo $max;
答案 1 :(得分:0)
对于混淆奖:
array_multisort(
array_map('intval',preg_replace('/^.*?(,([0-9]+))?$/','$2',$array)),
$array);
echo end($array);