将关联数组作为一个关联数组推送

Jul*_*eto 3 php arrays associative-array laravel laravel-5

我有这种所需的关联数组格式(参见下文)

$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"
    ),
);
Run Code Online (Sandbox Code Playgroud)

在Laravel中,我检索了数据库表中的记录并在其上循环,然后获取其值并将其推送到数组.

$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);
}
Run Code Online (Sandbox Code Playgroud)

它确实有效,但关联数组格式(参见上面的关联数组格式)不是我想要的,它给了我这个.

$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"
    )),
);
Run Code Online (Sandbox Code Playgroud)

任何想法,请帮忙吗?

Sou*_*ose 6

array_push将元素推到最后array.你是这样做的 -

array_push(array(...), array($item->name => ...));
Run Code Online (Sandbox Code Playgroud)

哪个会给 -

array (
   array($item->name => ...),
   array($item->name => ...)
)
Run Code Online (Sandbox Code Playgroud)

但是根据你想要的输出,你想$item->name成为索引和数组('k1'...)作为元素.

你可以做到 -

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