Объединение массивов из разных записей MySQL и удаление дубликатов - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть база данных MySQL с различными строками и определенный столбец с массивами, которые я хочу объединить, а затем удалить дубликаты.Например, следующие записи, row1 ([0] => 1) row2 ([0] => 2 [1] => 3) и row3 ([0] => 1 [1] => 2 [2] => 3).Мне нужно объединить их и удалить дубликаты следующим образом:

rows ([0] => 1 [1] => 2 [2] => 3)

Я вызвал запрос из базы данных следующим образом, и поскольку записи хранятся через запятую, (1,2,3), я использовалфункция разнесения, чтобы получить их в указанном формате.

$query2 = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis<>'';";
            $result2 = mysqli_query($conn, $query2);
            $input = mysqli_fetch_array($result2);
            $micro_analysis = $input['micro_analysis'];
            $micro_analyses = explode(',', $micro_analysis); 
            print_r($result2);

Отсюда я не могу получить массив из каждой отдельной строки, он только дает результат массива из первой строки и, таким образом, влияет на мои последующие результаты,Как мне достичь этой цели?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018
$query2 = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis<>'';";
$result2 = mysqli_query($conn, $query2);

$micro_analysis = array();
while($input = mysqli_fetch_array($result2))
{
    $micro_analysis[] = $input['micro_analysis'];
}

$micro_analysis_arr = array_unique($micro_analysis);

Надеюсь, это поможет вам

0 голосов
/ 28 ноября 2018

Сохраните его как разделенную запятыми строку, а затем взорвите и сделайте его уникальным .Затем вы можете использовать array_filter для удаления любых нулевых или пустых значений

Кроме того, вы пропустили зацикливание результирующего набора для извлечения всех значений, возвращаемых из запроса.

Здесь 'обновленный фрагмент,

$query2 = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis<>'';";
$result2 = mysqli_query($conn, $query2);

$micro_analysis = '';
while($input = mysqli_fetch_array($result2))
{
    $micro_analysis .= $input['micro_analysis'] . ',';
}

$micro_analysis_arr = array_filter(array_unique(explode(',', $micro_analysis)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...