php将键/值插入关联数组

时间:2016-04-11 14:23:05

标签: php arrays associative-array

我试图将一些新的键/值对插入到特定位置的关联数组中。从我在SO上完成的其他阅读中,我非常确定我必须遍历数组并在设置条件时插入新值。

这是当前数组

<select id="select">
  <option value="1" data-foo="dogs">this</option>
  <option value="2" data-foo="cats">that</option>
  <option value="3" data-foo="gerbils">other</option>
</select>

关键评论并不总是有数据,但是当它发生时,我想插入一个类似于以下摘录的新键值

array(
    (int) 0 => array(
        'Product' => array(
            'id' => '59',
            'title' => ' Blue Dress',
            'Review' => array(
                'id' => '7',
                'product_id' => '59',
                'Review' => array(
                    (int) 0 => array(
                        'average' => '3.0000'
                    )
                )
            )
        )
    )
    (int) 1 => array(
        'Product' => array(
            'id' => '60',
            'title' => 'Red Dress',
            'Review' => array()
        )
    )
)

我尝试了一些没有成功的事情。 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以这样做:

if(!empty($your_array[index]['Product']['Review'])){
  $your_array[index]['Product']['Review']['Review'][index]['some_value'] = 'new_value';
}

在你的例子中可能是:

if(!empty($your_array[0]['Product']['Review'])){
  $your_array[0]['Product']['Review']['Review'][0]['some_value'] = 'new_value';
}

同样,你没有提到你的代码。所以,很难弄清楚你想要什么!

答案 1 :(得分:0)

您应该遍历您的数组并传递当前值作为参考:

// Notice & sign before variable
foreach ($data as &$product)
{
    if ($product['Product']['Review'])
    {
        // or iterate through Review array
        $product['Product']['Review']['Review'][0]['some_value'] = 5;
    }
}