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

3

我希望将以下内容转换为所需的关联数组格式:

$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"
    ),
);

在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);
}

它确实起作用了,但关联数组格式(参见上面的关联数组格式)不是我想要的那种,它给了我这个。

$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"
    )),
);

有什么想法吗?请帮忙。

2个回答

6

array_push函数将元素添加到array数组的末尾。你可以像这样使用它 -

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

哪个会给予 -
array (
   array($item->name => ...),
   array($item->name => ...)
)

根据您的期望输出,您希望$item->name成为索引,数组('k1' ...)成为元素。

您可以简单地执行以下操作 -

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

那么如何将它放在循环和数组推送中? - Juliver Galleto
@CodeDemon,请检查更新后的代码。你可以把之前的代码放到循环里面,这样它就能工作了。 - Sougata Bose
很高兴能帮忙.. :) 只是不要忘记如果解决了问题,请接受答案。 - Sougata Bose

1
foreach 循环内部改为这样做。
foreach($k as $item){    
   $k_array[$item->name] = array(
        "k1" => $item->items[0]->description,
        "k2" => $item->items[1]->description
    )
}

你不需要使用array_push($k_array,$sr);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接