Объединить массивы | Номера массивов неизвестны, поскольку массивы идут по циклу

Извинения, если опубликовано уже.

Борется с array_merge функция.
Он отлично работает, когда мы используем его так.

    array_merge($array1,$array2);

В моем случае оба массива взяты из MySQL.
Смотрите следующий код для лучшего понимания.

    $getfilelist = 'select * from  fileartist fid IN (210,209)'; // fetching two rows
$FILE = $db->query($getfilelist);
$file_tot = count($FILE);
for($i=0;$i<$file_tot;$i++)
{
$artist = explode(',', $FILE[$i]['artist']); // Because Artist names saved like this `A,B` in first row and `A,C,D` in second.

}
print_r($artist);

Это печатает что-то вроде этого.

    Array // artist in first row
(
array[0] => A
array[1] => B
)

Array // artist in second row
(
array[0] => A
array[1] => C
array[2] => D
)

Я хочу массив должен —

    Array
(
array[0] => A
array[1] => B
array[2] => C
array[3] => D
)

Я попробовал следующий код.

    $getfilelist = 'select * from  fileartist fid IN (210,209)'; // fetching two rows
$FILE = $db->query($getfilelist);
$file_tot = count($FILE);
for($i=0;$i<$file_tot;$i++)
{
$artist = explode(',', $FILE[$i]['artist']); // Because Artist names saved like this `A,B` in first row and `A,B,C` in second.

$merged = array_merge($artist);
$unique = array_unique($merged);
}
print_r($unique);

Результаты

     Array
(
array[0] => A
array[1] => B
)

Array
(
array[0] => A
array[1] => C
array[2] => D
)

Это не ожидаемый результат.
В приведенном выше коде мне нужно что-то вроде этого -> array_merge($FILE[0], $FILE[1]); для получения ожидаемого результата. Не могу понять, как его кодировать.

я знаю array_merge Функция требует двух или более массивов, но не может понять, как дать оба массива array_merge функция.
Подскажите как печатать только A,B,C,D в вышеуказанном случае. Я что-то упустил? Или это плохо закодированный скрипт?
Кроме того, может этот пост может иметь более лучший заголовок для будущих пользователей.

1

Решение

попробуй это

        $getfilelist = 'select * from  fileartist fid IN (210,209)'; // fetching two rows
$FILE = $db->query($getfilelist);
$file_tot = count($FILE);
$artist=[];
for($i=0;$i<$file_tot;$i++)
{
$artist = array_merge($artist,explode(',', $FILE[$i]['artist'])); // Because Artist names saved like this `A,B` in first row and `A,C,D` in second.

}
print_r(array_unique($artist));

или же

    $getfilelist = 'select * from  fileartist fid IN (210,209)'; // fetching two rows
if($result = $mysqli->query($getfilelist)){
$artist=[];
while($FILE = $result->fetch_assoc()){
array_merge($artist,explode(',', $FILE['artist']));
}
}
print_r(array_unique($artist));
1

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

Это будет работать для полной информации об альбоме.
Я разместил это здесь для будущего пользователя.

$getfilelist = 'select * from fileartist fid IN (210,209)'; // fetching two rows
$FILE = $db->query($getfilelist);
$file_tot = count($FILE);
$artist=[];
$music=[];
$label=[];
$lyrics=[];
for($i=0;$i<$file_tot;$i++) {
$artist = array_merge($artist,explode(',', $FILE[$i]['artist'])); // Because Artist names saved like this `A,B` in first row and `A,C,D` in second.
$music = array_merge($music,explode(',', $FILE[$i]['music']));
$label = array_merge($label,explode(',', $FILE[$i]['label']));
$lyrics = array_merge($lyrics,explode(',', $FILE[$i]['lyrics']));

}
print_r(array_unique($artist));
print_r(array_unique($music));
print_r(array_unique($label));
print_r(array_unique($lyrics));
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector