Loop Array для поиска результатов в базе данных

0

У меня есть файл CSV, который я преобразовал в массив с помощью PHP, который выглядит примерно так, но с гораздо большим количеством записей:

Array(
 [0] = > Array
 {
   [firstName] = > John
   [surname] = > Smith
 }

 [1] => Array
 {
   [firstName] = > David
   [surname] = > Jones
 }
)

Я хочу взять этот массив данных и, возможно, пропустить его, чтобы найти записи в моей базе данных, которые соответствуют данным в массиве. Я новичок в PHP и использую эти данные для запроса базы данных. Любое руководство будет оценено!

Если вам нужен код, который я использовал для преобразования CSV в массив, дайте мне знать, и я отредактирую вопрос.

Заранее спасибо!

  • 0
    в чем именно проблема?: Вы не знаете, как запросить базу данных? Вы не знаете, как перебрать массив? Вы не знаете, какой запрос использовать?
  • 0
    @PaulSpiegel Я не знаю, как использовать данные в массиве для запроса к базе данных
Теги:
csv
arrays

2 ответа

0

если вы хотите найти значение в массиве, вы можете использовать функцию in_array

если у вас есть 2d-массив и хотите, чтобы поиск значения использовал foreach loop и in_array

foreach($mother_arr as $child_arr){
    if(in_array($value,$child_arr)){
        echo "match"
        break;
    }
}

если вы хотите, чтобы массив поиска в массиве мог использовать эту функцию (отсюда)

function searchMyCoolArray($arrays, $key, $search) {
   foreach($arrays as $object) {
       if(is_object($object)) {
          $object = get_object_vars($object);
       }
       if(array_key_exists($key, $object) && $object[$key] == $search){
           echo "match";
           break;
       }
   }
}
  • 0
    Я не уверен, что вы поняли, что я искал ... Я хочу использовать данные в моем массиве для поиска записей в моей базе данных, например, поместить данные в запрос или что-то в этом роде. Спасибо за ответ, хотя! Этот ответ может помочь кому-то
  • 0
    @cheesycoder о .. извините ...
0

Поскольку я не знаю, как вы подключаетесь к БД, вот пример PDO:

$stmt = $pdo->prepare('
    select 1
    from users
    where firstname = :firstName
      and surname   = :surname
    limit 1
');

foreach ($csvData as $key => $row) {
    $stmt->execute($row);
    $csvData[$key]['exists'] = ($stmt->fetchColumn() == 1);
}

Это добавит к каждому элементу вашего массива новое логическое поле exists, что будет true, если строка уже существует в users таблице.

  • 0
    Это кажется плохой идеей с точки зрения производительности

Ещё вопросы

Сообщество Overcoder
Наверх
Меню