PHP数组搜索不工作

PHP数组搜索不工作,php,arrays,search,Php,Arrays,Search,嘿,伙计们,我被难住了。正在尝试使array_search使用此脚本 <?php $dir = '/var/www/html/pay.group.com/upload'; $i = 0; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if ($file != "." && $file

嘿,伙计们,我被难住了。正在尝试使array_search使用此脚本

 <?php 

$dir = '/var/www/html/pay.group.com/upload';
$i = 0;


if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {

            if ($file != "." && $file != ".."){
            //convert files from pdf to text
            exec("pdftotext /var/www/html/pay.group.com/upload/" . $file . " /var/www/html/tmp/converted/" . $file);
            //create array from text files
            $current_array = file("/var/www/html/tmp/converted/" . $file) or die ("<br/>**cannot find file to create array**"); 
            //search array
            echo array_search('EMPLOYEE NO. ',$current_array);      
            $i++;

            echo var_dump($current_array);
            }
        }
        closedir($dh);

        echo "$i files processed"; 
    }
}


?>
我做错什么了吗?数组搜索的字符串与实际数组中的字符串完全相同,因此我无法理解为什么它不为我返回数组索引

使用pre标记,这就是我得到的

  [27]=>
  string(15) "NON NEGOTIABLE
"
  [28]=>
  string(5) "9871
"
  [29]=>
  string(13) "EMPLOYEE NO.
"
  [30]=>
  string(1) "
"
  [31]=>
  string(3) "01
"
  [32]=>
  string(6) "SHIFT
"
  [33]=>
  string(1) "
"
  [34]=>
  string(4) "MIC
"
  [35]=>
  string(19) "LOCATION HRS/UNITS
"
  [36]=>
  string(1) "
"

不一定是答案,但也许您应该在数组搜索中尝试var_dump,有时整数(大多数为1和0,如true和false)打印不正确。这将准确地告诉您结果是什么,而不是只是不打印任何内容(我假设发生了这种情况,因为您没有说它打印了什么).

上传文件中的行在单独的行上。函数的作用是:将换行符附加到数组项,这就是搜索不起作用的原因

可以像这样从所有数组项中剥离换行符

array_walk($current_array, 'trim');
在那之后,你的搜索就可以了

或者,正如KingCrunch所说,使用

file("/var/www/html/tmp/converted/" . $file, FILE_IGNORE_NEW_LINES);

我试着复制你的代码,一切都很好

也许可以尝试一下。这将检查值是否存在。如果这不起作用,请尝试搜索字符串,但不要以空格结尾

$current_array = array_map('trim', $current_trim);

也许-Flag也适用于您。

我很困惑,我确实使用了var_dump。在数组搜索中使用它是什么意思;而不是echo,这样你就可以看到所有剪辑的结果,不过,这并不重要,问题似乎已经解决了:请看我文章的结尾,我编辑了它,添加了我使用pre标记得到的内容。天哪,它正在工作,经过数小时的努力,终于可以让这玩意工作了。我真的非常感谢你。我爱你。我尝试了你推荐的两种方法,但还是没有用,fml。我真的不知道为什么这不起作用。当您尝试运行我的代码时,您是否在php脚本中创建了数组?是的。我自己创建了一个数组。我看你已经有答案了。可能是你的文件名有问题。我注意到有人尝试了这段代码,它成功了。
$current_array = array_map('trim', $current_trim);