• Как соединить массив по ключу?

    Тех, кто говорит про получение данных на уровне БД, не слушайте. У вас получается динамическое число столбцов, а здесь без реального программирования БД не обойтись.

    На самом деле, требуемая структура не является оптимальной. Во всяком случае пока нет доводов в ее пользу. Лучше на выходе получать что-то вроде того, что приведу ниже. Такие данные гораздо удобнее в дальнейшем обрабатывать.

    $arr = array(array('id' => 1,  'year' => 2013, 'name' =>  "Александр"),
    	array('id' =>2, 'year' => 2013, 'name' =>  "Сергей"),
    	array('id' => 3, 'year' => 2012, 'name' =>  "Никита"),
    	array('id' => 4, 'year' => 2012, 'name' =>  "Володя"));
    
    function by_year($arr) {
    	$result = array();
    	foreach ($arr as $l) {
    		$result[$l['year']][] = $l['name'];
    	}
    	return $result;
    }
    
    print_r(by_year($arr));

    Результат:
    Array
    (
        [2013] => Array
            (
                [0] => Александр
                [1] => Сергей
            )
    
        [2012] => Array
            (
                [0] => Никита
                [1] => Володя
            )
    
    )


    Если нужно сохранять id пользователя, то ставьте его на место ключа ($result[$l['year']][$l['id']] = $l['name'];).

    Проверки на NULL-значения и прочие вводите по необходимости, в зависимости от ограничений на таблицах БД.
    Ответ написан
    Комментировать
  • Как соединить массив по ключу?

    AMar4enko
    @AMar4enko
    Вам придется делать это либо руками, либо используя библиотеки наподобие https://github.com/Athari/YaLinqo
    Ответ написан
    Комментировать