Извинения, если опубликовано уже.
Борется с 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
в вышеуказанном случае. Я что-то упустил? Или это плохо закодированный скрипт?
Кроме того, может этот пост может иметь более лучший заголовок для будущих пользователей.
попробуй это
$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));
Это будет работать для полной информации об альбоме.
Я разместил это здесь для будущего пользователя.
$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));