[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переделать многомерный массив
Yrbanal
Люди добрые , помогите переделать многомерный массив из -
Array
(
[
0] => Array
(
[
login] => admin
[tr_name] => 1
)

[
1] => Array
(
[
login] => admin
[tr_name] => Транзакция 2
)

[
2] => Array
(
[
login] =>smirnov
[tr_name] => Транзакция 3
)

[
3] => Array
(
[
login] =>smirnov
[tr_name] => Транзакция 4
)

в такой вид

Array
(
[
admin] => Array
(
[
0] => Транзакция 1
[1] => Транзакция 2
)

[
smirnov] => Array
(
[
0] =>Транзакция 3
[1] => Транзакция 4
)

Zzepish
вначале: тебе нужно бросить сюда: из чего мы получаем этот массив
Yrbanal
Zzepish Получаем мы это из запроса БД один ко многим.



function test(){
$sql = "SELECT l.login, r.tr_name
FROM customers l
INNER JOIN transaction r ON l.id = r.customer_id
ORDER BY l.login
LIMIT 0 , 30"
;

$q = DB::getConnection()->prepare($sql);
$q->execute();
$result = $q->fetchAll(PDO::FETCH_ASSOC);
return $result;
}



собственно это и есть print_r(test());
Reh
Не знаю правильно это или нет, но я бы сделал так


$out = array();
foreach($in as $value){

$key = array_shift($value);
foreach($value as $value2){

$out[$key][] = $value2;
}
}

volter9
Reh
Yrbanal
Так будет легче и меньше кода:
$out = [];

foreach ($array as $value) {
$out[$value['login']][] = $value['tr_name'];
}


Ну а если нужно скопировать еще и другие элементы (кроме tr_name) то так можно использовать способ Reh.

_____________
Мой блог
Yrbanal
volter9
Я так и не смог вывести мне нужный список ,такого вида:
Admin
Транзакция 1
Транзакция 2
...................
Smirnov
Транзакция N
Транзакция N
...................
volter9
Yrbanal
<?php

$array = [
[
'login' => 'admin', 'tr_name' => 'tr1'],
[
'login' => 'admin', 'tr_name' => 'tr2'],
[
'login' => 'vasya', 'tr_name' => 'tr1'],
[
'login' => 'vasya', 'tr_name' => 'tr2']
];


$out = [];

foreach ($array as $value) {
$out[$value['login']][] = $value['tr_name'];
}

foreach ($out as $login => $value) {
echo $login, "\n<br/>";

foreach ($value as $transaction) {
echo $transaction, "<br/>\n";
}

echo str_repeat('.', 10) . "<br/>\n";
}


Результат будет:

admin<br/>
tr1<br/>
tr2<br/>
..........<br/>
vasya<br/>
tr1<br/>
tr2<br/>
..........<br/>


_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.