【问题标题】:php insert key/value into associative arrayphp将键/值插入关联数组
【发布时间】:2016-04-11 14:23:05
【问题描述】:

我正在尝试将几个新的键/值对插入到特定位置的关联数组中。从我对 SO 所做的其他阅读来看,我很确定我必须遍历数组并在设置条件时插入新值。

这是当前数组

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()
        )
    )
)

key Review 并不总是有数据,但当有数据时,我想插入一个类似于以下摘录的新键值

    (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'
                        'some_value' => '5'
                    )
                )
            )
        )
    )

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

【问题讨论】:

    标签: php arrays associative-array


    【解决方案1】:

    你可以这样做:

    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';
    }
    

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

    【讨论】:

    • 谢谢,就是这样。很明显,我真的没有想清楚。我没有足够高的声誉来支持你..否则我会的。
    【解决方案2】:

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

    // 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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2015-06-25
      • 1970-01-01
      • 2011-09-24
      • 2013-02-09
      • 1970-01-01
      相关资源
      最近更新 更多