如何使用带有array_key_exists函数的foreach

时间:2013-08-22 09:14:14

标签: php arrays for-loop

我试图从'POST表单'循环返回值数组,然后将这些值放入数据库中。

我遇到的问题是确定循环这些值的最佳方法。我尝试使用array_key_exists()。但看起来这个函数只适用于If子句。

我在ZendFrameWork 1工作。

我在下面附上我的代码,非常感谢任何帮助和建议。

 foreach(array_key_exists('id', $ReturnedPostvalues))

     $product = EP3D::getSource('EP3D/Products')->retrieve($productId);
     {  
      $product->quantity = $ReturnedPostvalues['quantity'];
      $product->price = $ReturnedPostvalues['price'];
      $product->rrp = $ReturnedPostvalues['rrp'];

      $product->save();
     }
    }

从帖子返回的var_dumped数组值

 array(6) {
    ["quantity"]=>
    string(3) "222"
    ["price"]=>
    string(3) "220"
    ["rrp"]=>
    string(2) "22"
    ["sampleId"]=>
    string(5) "42960"
    ["id"]=>
    string(1) "5"
    ["delete"]=>
    string(1) "0"
  }
  [6]=>
  array(7) {
    ["quantity"]=>
    string(4) "7777"
    ["price"]=>
    string(4) "2022"
    ["rrp"]=>
    string(2) "22"
    ["sampleId"]=>
    string(5) "42960"
    ["id"]=>
    string(1) "6"
    ["delete"]=>
    string(1) "0"
  }

我基本上需要遍历这个数组并将数据输入数据库。

1 个答案:

答案 0 :(得分:1)

也许这就是你想要的:

foreach($ReturnedPostvalues as $value) {
    if (array_key_exists('id', $value)) {
        $product = EP3D::getSource('EP3D/Products')->retrieve($value['id']);
        $product->quantity = $value['quantity'];
        $product->price = $value['price'];
        $product->rrp = $value['rrp'];

        $product->save();
    }
}

您需要更新对多维数组的理解。您的问题是您似乎混淆了访问顶级数组和访问子数组。