/ / popchnij asocjacyjne tablice jako jedną asocjacyjną tablicę - php, tablice, laravel, laravel-5, asocjacyjną tablicę

popchnij tablice asocjacyjne jako jedną tablicę asocjacyjną - php, tablice, laravel, laravel-5, tablicę asocjacyjną

Mam ten pożądany format tablicy asocjacyjnej (patrz poniżej)

$url = array (
"a1" => array(
"k1" => "content of k1 in a1 array",
"k2" => "content of k2 in a1 array"
),
"a2" => array(
"k1" => "content of k1 in a2 array",
"k2" => "content of k2 in a2 array"
),
);

aw rzeczy Laravel, pobrałem rekordy w tabeli bazy danych i zapętliłem się na niej, a następnie uzyskałem jego wartość i przesunąłem do tablicy.

$k = kk::with("kk_names")->get();
$k_array = array();
foreach($k as $item){
$sr = array($item->name => array("k1" => $item->items[0]->description,"k2" => $item->items[1]->description))
array_push($k_array,$sr);
}

to działało, ale format tablicy asocjacyjnej (odwołuj się do formatu tablicy asocjacyjnej) nie był tym, który chcę, ale daje mi to.

$url = array (
array("a1" => array(
"k1" => "content of k1 in a1 array",
"k2" => "content of k2 in a1 array"
)),
array("a2" => array(
"k1" => "content of k1 in a2 array",
"k2" => "content of k2 in a2 array"
)),
);

jakieś pomysły, proszę o pomoc?

Odpowiedzi:

6 dla odpowiedzi № 1

array_push wciśnij element na koniec array. Robisz coś -

array_push(array(...), array($item->name => ...));

Który dałby -

array (
array($item->name => ...),
array($item->name => ...)
)

Ale zgodnie z pożądanym rezultatem, chcesz $item->name być wskaźnikiem i tablicą ("k1" ...) jako elementami.

Możesz zrobić po prostu -

foreach($k as $item) {
$k_array[$item->name] = array(
"k1" => $item->items[0]->description,
"k2" => $item->items[1]->description
);
}

1 dla odpowiedzi nr 2

W środku foreach zamiast tego wykonaj to.

foreach($k as $item){
$k_array[$item->name] = array(
"k1" => $item->items[0]->description,
"k2" => $item->items[1]->description
)
}

i nie musisz tego używać array_push($k_array,$sr);