У меня есть PHP-скрипт, который перебирает различные таблицы базы данных для генерации результатов.
Я не знаю заранее, сколько результатов будет накапливаться или сколько пользователей.
Поэтому я перебираю данные и собираю наборы данных в одномерный массив следующим образом:
Daniel Kelleher,1,0,1,0,Bill Bixby,1,0,1,0,Daniel Kelleher,2,0,2,0,Daniel Kelleher,3,1,2,0,Bill Bixby,2,1,1,0,Daniel Kelleher,4,1,2,1
Вы можете видеть шаблон из 5 значений, проходящих по массиву — name, int, int, int, int. В этом случае есть два пользователя — Даниэль Келлехер и Билл Биксби.
Мне нужен только последний экземпляр данных для каждого пользователя, например, Даниэль Келлехер, 4,1,2,1 и Билл Биксби, 2,1,1,0.
Как бы я удалил нежелательные значения и закончил бы массивом «Билл Биксби, 2,1,1,0, Даниэль Келлехер, 4,1,2,1»?
$array = array('Daniel Kelleher',1,0,1,0,'Bill Bixby',1,0,1,0,'Daniel Kelleher',2,0,2,0,'Daniel Kelleher',3,1,2,0,'Bill Bixby',2,1,1,0,'Daniel Kelleher',4,1,2,1);
$temp = array();
$chunk = array_chunk($array,5); // make array of arrays with 5 items
foreach($chunk as $item)
$temp[$item[0]] = $item;
var_dump($temp);
// array(2) {
// ["Daniel Kelleher"] => array("Daniel Kelleher", 4, 1, 2, 1)
// ["Bill Bixby"] => array("Bill Bixby", 2, 1, 1 0)
// }
// if you want plain array
$result = array();
foreach($temp as $item)
$result = array_merge($result, $item);
var_dump($result);
// array("Daniel Kelleher", 4, 1, 2, 1, "Bill Bixby", 2, 1, 1, 0)
Других решений пока нет …