如何在特定键下向我的数组添加元素?

时间:2013-02-27 09:52:28

标签: php arrays

如何在特定键下向我的数组添加元素?

这是我使用foreach之前的数组输出。如您所见,错误字段为空。我想填写它。

Array (
  [0] => Array (
    [transactionid] => 2223
    [created] => 26-02-13 14:07:00
    [cardid] => 10102609
    [pricebefordiscount] => 68900
    [error] =>
  )

这是我的预告。正如您所见,我已经尝试通过实施$arrayname['index'] = $value;来完成这项工作。但这不起作用,当我在print_r吐出时没有任何结果。为什么会这样?

foreach ($samlet as $key)
{
    if ($key['pricebefordiscount'] > '200000') 
    {
        $samlet['error'] = "O/2000";
    }
    if ($key['cardid'] === '88888888') 
    {
        $samlet['error'] = "Testscan";
    }
}

这是所需的输出:

Array (
  [0] => Array (
    [transactionid] => 2223
    [created] => 26-02-13 14:07:00
    [cardid] => 10102609
    [pricebefordiscount] => 68900
    [error] => "Testscan"
  )

4 个答案:

答案 0 :(得分:3)

更改您的foreach,以便在“main” $samlet数组中使用索引:

foreach($samlet as $key => $array)
{
    if ($array['cardid'] === '88888888')
    {
        $samlet[$key]['error'] = '0/2000';
    }
}

等等......

答案 1 :(得分:1)

试试这个:

foreach ($samlet as &$key){

    if ($key['pricebefordiscount'] > '200000'){
         $key['error'] = "O/2000";
    }
    if ($key['cardid'] === '88888888'){
        $key['error'] = "Testscan";
    }

}

答案 2 :(得分:1)

根据PHP manual

  

为了能够直接修改循环中的数组元素,在$ value之前加上&amp ;.在这种情况下,该值将通过引用分配。

所以你的代码应该像这样讨论:

<?php
foreach ($samlet as &$key)
{

    if ($key['pricebefordiscount'] > '200000') 
    {
         $key['error'] = "O/2000";
    }
    if ($key['cardid'] === '88888888') 
    {
        $key['error'] = "Testscan";
    }
}

答案 3 :(得分:0)

尝试这个

foreach ($samlet as $key=>$value)
{

    if ($value['pricebefordiscount'] > '200000') 
    {
         $samlet[$key]['error'] = "O/2000";
    }
        if ($value['cardid'] === '88888888') 
    {
        $samlet[$key]['error'] = "Testscan";
    }
}