Php 循环浏览每行第一个数字的文本文件

Php 循环浏览每行第一个数字的文本文件,php,Php,下面的代码适用于每行的第一个单词,但如何获得每行的第一个数字?请记住,数字可以是1位数,也可以是20位数 <?php $file = new SplFileObject("/tmp/test.txt", "r"); $data = array(); while(! $file->eof()) { $data[] = array_shift(($file->fgetcsv("|"))); } echo implode(",

下面的代码适用于每行的第一个单词,但如何获得每行的第一个数字?请记住,数字可以是1位数,也可以是20位数

<?php
    $file = new SplFileObject("/tmp/test.txt", "r");
    $data = array();
    while(! $file->eof()) {
         $data[] = array_shift(($file->fgetcsv("|")));
    }
    echo implode(",", $data);
?>

您展示的代码是第一部分,而不是第一个单词。 您必须使用foreach、array\u walk等遍历数组

例如:

<?php
$file = new SplFileObject("/tmp/test.txt", "r");
$data = array();
while(! $file->eof()) {
  foreach($file->fgetcsv("|") as $part)  {
    if (is_numeric($part))  { //or any other numeric check you like
      $data[] = $part;
      break;
    }
  }
}
echo implode(",", $data);
?>

这将获取字符串中的第一个数字:

function getFirstNumber($str){
    $strlen = strlen( $str );
    $num = "";
    for( $i = 0; $i <= $strlen; $i++ ) {
        $char = substr($str, $i, 1);
        if(!is_numeric( $char)){
            if(!empty($num))
                return intval($num);
        }else $num .= $char;
    }
    return intval($num);
}

$str = "asdfas1234241234lkj 1l2k3j4  1k2j3412341234";
echo getFirstNumber($str);
函数getFirstNumber($str){ $strlen=strlen($str); $num=”“;
对于($i=0;$i出现错误:语法错误意外的文件结尾忘记了a}。已解决@SlopTonio