2010-11-29 14 views
2

Hé les gars et les filles, je suis perplexe. Essayer d'obtenir array_search pour travailler avec ce script. Je n'obtiens rien du array_search et je n'arrive pas à comprendre pourquoi, ce qui me rend fou.PHP array_search ne fonctionne pas

Voici une partie pertinente de var_dump qui fonctionne correctement.

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

Y at-il quelque chose que je fais mal? La chaîne pour la recherche de tableau est exactement la même que dans le tableau actuel, donc je ne peux pas comprendre pourquoi elle ne retourne pas un index de tableau pour moi.

En utilisant le pré-tag, voici ce que je reçois.

[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) " 
" 
+0

Probablement que c'est un problème concernant le nom de vos fichiers. J'ai remarqué que quelqu'un d'autre a essayé ce morceau de code et cela a fonctionné. – Shoe

Répondre

3

Les lignes dans le fichier téléchargé sont séparées lignes. La fonction file() laisse les caractères de nouvelle ligne attachés aux éléments du tableau et c'est la raison pour laquelle la recherche ne fonctionne pas.

Vous pouvez dépouiller de tous les sauts de ligne éléments du tableau comme celui-ci

array_walk($current_array, 'trim'); 

Après que votre recherche devrait fonctionner.

Ou, comme l'a dit KingCrunch, utilisez

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

Voir la fin de mon message Je l'ai édité pour ajouter ce que je reçois en utilisant le pré-tag. – Hus

+0

Et j'ai mis à jour ma réponse en conséquence –

+0

Omfg, son fonctionnement, après des heures et des heures d'essayer d'obtenir cette merde à travailler, il le fait finalement. Je ne peux pas vous remercier assez, sérieusement. Je t'aime. – Hus

1

Pas nécessairement une réponse, mais peut-être que vous devriez essayer var_dump sur votre recherche de tableau, entiers parfois (la plupart du temps 1 et 0, comme vrai et faux) ne s'impriment pas droit. Cela vous dira exactement quel est le résultat, plutôt que de ne rien imprimer (ce que je suppose est arrivé, puisque vous n'avez pas dit ce qu'il imprimait) ...

+0

Je suis confus, j'ai utilisé var_dump. Que voulez-vous dire par l'utiliser sur la recherche de tableau? – Hus

+0

var_dump (array_search ('EMPLOYEE NO.', $ Current_array)); au lieu de l'écho, vous pouvez voir les résultats avec toutes les rognures, cependant, cela n'a pas d'importance, le problème semble résolu: p – ShaneK

0

J'ai essayé de reproduire votre code et tout a bien fonctionné.

Peut-être essayer in_array(). Cela va vérifier si une valeur existe. Si cela ne fonctionne pas, essayez de rechercher la chaîne sans espace de fin.

+0

J'ai essayé les deux façons que vous avez recommandé, et il ne fonctionne toujours pas du tout, fml. Je n'ai vraiment aucune idée pourquoi cela ne marche pas. Lorsque vous avez essayé d'exécuter mon code, avez-vous créé le tableau dans le script PHP? – Hus

+0

Oui. J'ai créé un tableau moi-même. Je vois que vous avez déjà une réponse, cependant. – MikeNGarrett