Искать имена и полное имя

В данный момент мой код ищет данные, но вам нужно ввести полное имя, чтобы отобразить результат. Я думаю, что мне нужно разделить мои полные имена на имена и фамилии. Так что либо можно найти и найти.

Я хочу, чтобы он находил и отображал профили по полному имени ИЛИ по имени

-Мне нужно, чтобы отобразить результаты для людей с таким именем. Но в моем файле CSV (где хранятся данные), полные имена хранятся, например. «Боб Джеральд»

Я предполагаю, что мне нужно разделить значения в цикле для поиска имен? Я не совсем уверен .. Любая помощь будет принята с благодарностью.

Вот что у меня есть:

//This gathers the values from the form (search bar) and assigns it to the variable $SearchThis
//isset()
$SearchThis = isset($_POST['Search']) ? $_POST['Search'] : '';
//empty()
$SearchThis = !empty($_POST['Search']) ? $_POST['Search'] : '';// Grabs the csv file (and its existing data)  and makes it into an array
$csv = array();
$lines = file('data/StaffData.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
}//A new array which will display the search results
$new_csv = array();

//This displays which rows have matched the search (it is put in an array)

//Looks through full names
$keys = array_keys(array_column($csv, 0), $SearchThis);  //  original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through phone numbers
$keys = array_keys(array_column($csv, 1), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through gender
$keys = array_keys(array_column($csv, 2), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}
//Looks through Birthday
$keys = array_keys(array_column($csv, 3), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}

//Looks through Type of work
$keys = array_keys(array_column($csv, 4), $SearchThis);  // original code
foreach($keys as $index) {                               // Iterate over the keys
$new_csv[] = $csv[$index];                           // Copy the matching rows to our new array
}

0

Решение

Пожалуйста, используйте это для поиска в fullname колонка:

$new_csv = array_filter($csv, function ($item) use($SearchThis) {
//Match the full name
if ($item[0] === $SearchThis) {
return true;
}
//Split the fullname by space characters into array
//and see if it contains the $SearchThis
return in_array($SearchThis, preg_split("/[\s]+/", $item[0]));
});

Я надеюсь, что это поможет вам.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]