0

特定のキーの下にある配列に要素を追加するにはどうすればよいですか?

これは、foreach を使用する前の配列出力です。ご覧のとおり、エラー フィールドは空です。埋めたい。

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

これは私のforeachです。ご覧のとおり、私はすでに実装してこれを機能させようとしました$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

4 に答える 4

3

を変更して、 「メイン」配列foreachで使用されるインデックスを取得します。 $samlet

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

等々...

于 2013-02-27T09:55:29.087 に答える
1

これを試して :

foreach ($samlet as &$key){

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

}
于 2013-02-27T09:55:50.263 に答える
1

PHPマニュアルによると:

ループ内で配列要素を直接変更できるようにするには、$value の前に & を付けます。その場合、値は参照によって割り当てられます。

したがって、コードは次のようになります。

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

    if ($key['pricebefordiscount'] > '200000') 
    {
         $key['error'] = "O/2000";
    }
    if ($key['cardid'] === '88888888') 
    {
        $key['error'] = "Testscan";
    }
}
于 2013-02-27T09:56:09.430 に答える
0

これを試して

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

    if ($value['pricebefordiscount'] > '200000') 
    {
         $samlet[$key]['error'] = "O/2000";
    }
        if ($value['cardid'] === '88888888') 
    {
        $samlet[$key]['error'] = "Testscan";
    }
}
于 2013-02-27T09:55:02.070 に答える