Php 在数组中查找并没有找到任何内容

Php 在数组中查找并没有找到任何内容,php,arrays,Php,Arrays,当我上传一个文件并想检查文件中是否存在文本aantal时。我使用此代码检查: <?php // Loop through each file for( $i=0 ; $i < $total ; $i++ ) { // Get the temp file path $tmpFilePath = $_FILES['upload']['tmp_name'][$i]; // Make sure we have a file path if ($tmpFile

当我上传一个文件并想检查文件中是否存在文本aantal时。我使用此代码检查:

<?php
// Loop through each file
for( $i=0 ; $i < $total ; $i++ )
{
    // Get the temp file path
    $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

    // Make sure we have a file path
    if ($tmpFilePath != "")
    {
        //Setup our new file path
        $newFilePath = $config['temp_uploads'].'/'.$_FILES['upload']['name'][$i];

        // Upload the file into the temp dir
        if(move_uploaded_file($tmpFilePath, $newFilePath))
        {
            //Handle other code here
            echo 'Upload succes<br /><br />';
            echo 'File name: '.$_FILES['upload']['name'][$i];
            echo '<br /><br />';

            $lines = file($newFilePath); //file in to an array

            echo 'Find: '.array_search('Aantal', $lines);
            echo '<br /><br />';

            print_r($lines);
            echo '<br /><br />';

            // remove file
            unlink($newFilePath);
        }
        else
        {
            echo 'Upload error<br /><br />';
        }
    }
}
?>
有什么建议说明为什么没有显示指针2224或指针2224的文本吗?

22 Aantal:2与Aantal不同。寻找一个精确的匹配项,而不是包含您要寻找的内容的内容

您可以通过以下方式获得更好的服务:


如果你想像这样松散地搜索,你可以使用preg_grep

$match = reg_grep("/Aantal/", $lines);

它使用正则表达式并查找任何包含Aantal的数组值,即使已经回答了,我也尝试过了

它将文件中的每一行读入数组 然后使用空格作为限定词,将每行分解成单词 然后在该单词数组中搜索所需单词的第一个匹配项 图像中的输出计数器因循环从零开始而不同 没有发现或测试多个事件

<?php
   // Loop through each file
   function find_word($word){
   $rows = file('test.txt');

   foreach($rows as $row_no => $row_content){

   $words = explode(' ',$row_content);
   if(array_search($word,$words)){
      echo $row_no ." \t\t\t\t " .$row_content;
      echo '<hr />';
   }else{
      echo 'NOT FOUND<hr />';
    }
  }
 }

 echo find_word('Aantal');
 ?>

22安塔尔:2与安塔尔不同。array_search查找的是精确匹配,而不是包含您要查找的内容。请执行var_dump$行[2223]。检查字符串是否没有一些附加值characters@Justinas它就在输出中:[2223]=>22aantal:2。这不是同一根弦
$match = reg_grep("/Aantal/", $lines);
<?php
   // Loop through each file
   function find_word($word){
   $rows = file('test.txt');

   foreach($rows as $row_no => $row_content){

   $words = explode(' ',$row_content);
   if(array_search($word,$words)){
      echo $row_no ." \t\t\t\t " .$row_content;
      echo '<hr />';
   }else{
      echo 'NOT FOUND<hr />';
    }
  }
 }

 echo find_word('Aantal');
 ?>