我试图将一些新的键/值对插入到特定位置的关联数组中。从我在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()
)
)
)
我尝试了一些没有成功的事情。 非常感谢任何帮助。
答案 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;
}
}