Это меня поставило в тупик. Мы получаем большой CSV-файл от нашего поставщика, который загружаем в наше приложение. Расположение информации никогда не менялось, поэтому мы использовали ключи массива для поиска / сохранения данных ie. $first_name = $data[1];
Недавно наш поставщик начал изменять порядок столбцов, и я делаю изменения, чтобы проверить, существуют ли требуемые заголовки, прежде чем наша система загрузит данные из файла CSV.
// get headers from csv file
$header = fgetcsv($handle);
// create test aray of required headers
$validate_header = ["FamName", "FirstName", "StaffNo", "HomeGroup", "PayLevel", "Gender", "Status"];
foreach($validate_header as $v){
if (!in_array($v, $header)) {
// error header not found
// return user to upload form with error
}
}
// headers all found
Проблема, с которой мы столкнулись, заключается в том, что первое значение в массиве $ header ($header[0])
не проходит проверку.
, если мы дампим переменную, в которой она потерпела неудачу, всегда первое значение [0] в массиве. Мы можем изменить это на что-нибудь, и это всегда потерпит неудачу.
$v = "FamName"
$header = array:6 [▼
0 => "FamName"
1 => "FirstName"
2 => "StaffNo"
3 => "PayLevel"
4 => "Gender"
5 => "Status"
]
Если бы кто-то мог указать мне на причину, я был бы очень признателен.