PHP array_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 != ".."){
            //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"; 
    }
}


?>

我从 array_search 中什么也没得到,我不明白为什么,这让我发疯。

这是 var_dump 工作正常的相关部分。

"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 "

我是不是做错了什么?数组搜索的字符串与实际数组中的字符串完全相同,因此我无法弄清楚为什么它不为我返回数组索引。

使用 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) "
"

最佳答案

上传文件中的行是单独的行。 file() 函数将换行符保留在数组项上,这就是搜索不起作用的原因。

您可以像这样从所有数组项中删除换行符

array_walk($current_array, 'trim');

之后您的搜索应该可以工作。

或者,正如 KingCrunch 所说,使用

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

关于PHP array_search 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307180/

相关文章:

javascript拆分数组中的字符串

search - 为什么搜索查询应该(或不应该)只返回文档 ID?

php - Laravel/SQL 按流行度/趋势排序

php - Mysql (+php) 存储、检索和显示日期范围的正确方法

javascript - 如何从数组中删除多个相同的项

java - 递归名称搜索

javascript - Google Maps API 是否提供按名称搜索位置的方法?

phpmysql倒排索引搜索m个词中至少匹配n个词

php - 单选按钮的验证

java - Java 中的接口(interface)数组