在PHP中将值推送到数组的相同索引

时间:2014-08-21 11:07:08

标签: php arrays string key

我希望将键/值对添加到循环内的数组的相同索引中。

像这样:

$attributes = array();
    for($i=0;$i<3;$i++)
    {
        array_push($attributes, array("title" => "this is content" . $i));
    }

除了上面会将新数组添加到原始数组之外。上面的输出是:

[{"title":"this is content0"},{"title":"this is content1"},{"title":"this is content2"}]

我需要的是以下内容:

{"title1":"Hello World!","title2":"yoyoyyooyy"}

因此该数组仍有一个索引,但该索引中的多个键/值对用逗号分隔。

请帮助!!!

3 个答案:

答案 0 :(得分:4)

请试试这个:

$attributes = array();
for ($i = 0; $i < 3; $i++)
{
      $attributes['title'][] = "content".$i;
}

答案 1 :(得分:0)

$attributes = array();
    for($i=0;$i<3;$i++)
    {
        $attributes["title".$i]= "this is content".$i;
    }

这将帮助您不需要使用数组推送

答案 2 :(得分:0)

我根本不确定你想要达到什么......

  

因此数组仍然有一个索引,但该索引中的多个键/值对用逗号分隔。

从字面上理解你会想要这样的东西吗? (那将是序列化

$attributes:
    array(1) {
      [0]=> "Title1,This is content0,Title2,This is content1,Title3, (...)"
      string(n)

因为如果是这样,你只需要这样做:

$index_values = array();
for ($i=0; $i<N; $i++)
{
     $index_values[] = "Title" . $i;
     $index_values[] = "This is content". $i;
}

然后

$attributes[0] = implode(",", $index_values);

或者,您可以执行上面其他用户所说的内容,然后将json_encode($array)生成的数组放入目标数组的第一个索引中。

注意:据我所知,如果没有封装在数组或对象之类的结构中,您就无法拥有备用键/对值。