@River0051

Как объединить массивы в многомерный массив?

Добрый вечер!
Есть задача, нужно объединить несколько массивов в один многомерный, массив выглядит так
Array ( 
	[0] => stdClass Object 
	( 
	[id] => 1 
	[sector] => 5
	[name] => Имя
	[desc] => Описание 
	[img] => картинка 
	) 
)

Нужно объединить массивы, чтобы получилось так, у массивов поле sector будет не изменным, т.е у массива 0 будут все объекты у которых сектор равен 0, у массива 1 будут все объекты у которых сектор равен 1
Array ( 
[0]	
{
	[0]
		( 
		[id] => 1 
		[sector] => 0
		[name] => Имя
		[desc] => Описание 
		)
	[1]
		( 
		[id] => 2 
		[sector] => 0
		[name] => Имя
		[desc] => Описание 
		) 
}
[1] 
{
	[0] 
		( 
		[id] => 1 
		[sector] => 1
		[name] => Имя
		[desc] => Описание  
		)
	[1] 
		( 
		[id] => 2 
		[sector] => 1
		[name] => Имя
		[desc] => Описание 
		) 
}
	)


Перечитал много всего в гугле и форумах, но не понял как сделать именно такого вида

P.S цель всего этого, чтобы в коде можно было удобно выводить информацию,
например
$array[0][0][name], $array[0][0][desc] 
$array[1][0][name], $array[1][0][desc]
  • Вопрос задан
  • 246 просмотров
Пригласить эксперта
Ответы на вопрос 2
Ну как то так если я правильно понял
$data = [];
$allArray = [
    [
        'id' => 1,
        'sector' => 2,
        'name' => 'Имя'
    ],
    [
        'id' => 1,
        'sector' => 5,
        'name' => 'Имя'
    ]
];
foreach ($allArray as $item){
    $data[$item['sector']][] = $item;
}

P.S. Пропустил [] в конце
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Если выборка делается из БД, то с помощью PDO можно сразу группировать по определенному полю
$data = $pdo->query("SELECT sector, table.* FROM table")->fetchAll(PDO::FETCH_GROUP);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы