ich eine CSV-Datei, die Linien mit einem Format enthält wie folgt:Wie ein Datum filtern filter_var_array mit
Name;timestamp;floatValue
Die hat Linien über als 20000 Datei, und ich möchte jeden Wert jeder Zeile filtern. Ich habe versucht, mit diesem Code:
$args=array(FILTER_SANITIZE_STRING,FILTER_VALIDATE_INT,FILTER_VALIDATE_FLOAT);
while (($line = fgetcsv($handle, 1024, ";")) !== FALSE) {
$testing = filter_var_array($line,$args);
var_dump($testing);
}
ich diesen Fehler:
filter_var_array(): Numeric keys are not allowed in the definition array
Also ich habe 2 Probleme hier:
- Warum erhalte ich diesen Fehler? In der Tat, wie ich aus der Zeile ein Array mit Schlüsseln und Werten nicht bekommen kann, weiß ich nicht, wie man immer noch die
filter_var_array
- Wie kombinieren Filterstrings, Floats mit einem Datum? Ist es möglich, das Datum in der Mitte zu überspringen, um es separat nach
DateTime::CreateFromFormat
zu filtern? Ich habe diese doc überprüft, aber es gibt keinen Filter für Daten.
:::EDIT:::
Was dazu:
$data = array(
'name' => $line[0],
'timestamp' => $line[1],
'value' => $line[2]);
$args=array(
'name' => FILTER_SANITIZE_STRING,
'timestamp' => FILTER_VALIDATE_INT,
'value' => FILTER_VALIDATE_FLOAT);
$testing = filter_var_array($data,$args);
var_dump($testing);
bitte mir sagen, ob es eine gute approche ist.
@StuartWagner Ich weiß, dass es mehr Felder sind aber meine Array enthalten, die ich will Filter hat keine Schlüssel und Werte (indexiertes Array) – JavaQueen
'filter_var_array()' benötigt ein Eingabearray mit Stringschlüsseln. Möglicherweise benötigen Sie einen anderen Ansatz, wenn Sie solche Schlüssel nicht haben. –
@StuartWagner Dann, warum dieses Beispiel funktioniert: ' Php $ data = array ( 'php', 'javascript', 'Programmierung'); $ myinputs = filter_var_array ($ data, FILTER_SANITIZE_STRING); var_dump ($ myinputs); ?> ' – JavaQueen