如何只回显第一行print_r?
更多信息:
我有这个PHP代码:
preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches);
foreach(end($matches) as $key=> $value){
print print_r($value, 1).'<br>';
}
结果是:
12567682
12764252
12493678
14739908
(或其他数字取决于用户输入)
我试过了:
preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches);
foreach(end($matches) as $key=> $value){
$id = print_r($value, 1).'<br>';
}
echo $id
但它会从列表中得到1个随机数。换句话说,结果仅在使用类似' print print_r($value, 1).'<br>';'
的打印时显示。问题是我只希望显示第一个有序的结果。好像:
$firstlineofnumbers = '12567682';
echo $firstlineofnumbers;
希望这是有道理的。谢谢(:
答案 0 :(得分:3)
如果我理解你要做什么,只需在输出第一个值后添加break;
语句就足够了:
foreach(end($matches) as $key=> $value){
print print_r($value, true).'<br>'; // print_r() expects true, not 1
break;
}
答案 1 :(得分:1)
如果$ matches中的键总是数字键,则此代码应该足够了:
echo $matches[0];
否则,请尝试以下代码:
$keys = array_keys($matches);
echo $matches[array_shift($keys)];
$ keys将包含$ matches的所有键 array_shift将返回$ keys的第一个值(第一个键) 所以最后一行会显示相应的值。
如果您只需要显示第一个元素,则无需遍历整个数组。
答案 2 :(得分:0)
preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches);
$i=0;
foreach(end($matches) as $key=> $value){
$i++;
if ($i == 1) {
echo $value."<br />";
}
}
这从变量$i
开始,每次匹配增加1。如果$i == 1
,它将回显$value
。