Сериализованные данные в базе данных mysql должны объединяться в массив

Я работаю в PHP / MySQL.

У меня есть таблица в моей базе данных, которая ежечасно в этой таблице называется столбцом с именем webaddress, которые сериализуются. Существует несколько строк каждого столбца webaddresses, каждый из которых сериализуется.

Мне нужно вытащить каждую строку, отменить их, а затем поместить в массив.

Я попытался использовать этот бит кода, но он хватает только 1 строку из-за ограничений функций PHP.

while ($row = mysql_fetch_array($results)) {$test = unserialize($row[0]);} 

Я думал, что что-то вроде этого может работать:

 while(($row = mysql_fetch_array($results)) !== FALSE) {$test[] = $row;} 

Это не сработало …

Как я могу захватить каждую строку, а затем отменить ее, а затем добавить в массив? Мне просто нужны данные в поле web_addresses, в настоящее время имеется 3 строки данных. Таким образом, в каждом поле web_addresses было бы 3 сериализованных массива, которые мне нужно было бы не инициализировать и объединить в другой массив. Надеюсь, это имеет больше смысла.


Вот таблица MySQL:

 CREATE TABLE `hourly` ( `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `id` bigint(20) NOT NULL auto_increment, `month` longtext NOT NULL, `day` longtext NOT NULL, `year` longtext NOT NULL, `source` longtext NOT NULL, `web_address` longtext NOT NULL, `at_replies` longtext NOT NULL, `words` longtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1 

EDIT: теперь отражает обновления, основанные на информации OP:

Из вашего вопроса звучит так, что каждая строка имеет один сериализованный столбец, и этот столбец содержит сериализованный массив из трех элементов на строки. Поэтому это должно работать:

 $collection = array(); while ( $row = mysql_fetch_array($results)) { $values = unserialize($row[0]); # $values has unserialized the data into its own array with 3 items $collection = array_merge($collection, $values); } 

Если было три строки db, и каждое поле имело сериализованный массив с тремя элементами, $ collection теперь содержит массив с 9 элементами.

измените его на $test[] = unserialize($row[0]) .

Он будет неэтериализовать ваши данные в массиве, а затем вывести этот массив в массив $test . Чтобы увидеть, как это выглядит, после вашего цикла добавьте эту строку:

 print_r($test); 

Это будет примерно так:

 array( [0] => array( // ... the first record's data ), [1] => array( // ... the second record's data ), // etc )