0

如果我使用了错误的单词定义,请提前道歉......我正在使用 SimpleCart 将 $.Post 变量传递给 PHP 页面。如果我打印我得到的数组

数组 ( [货币] => CAD [运费] => 0 [税] => 1.69 [taxRate] => 0.13 [itemCount] => 3 [item_name_1] => 餐盘 [item_quantity_1] => 1 [item_price_1] => 5 [item_options_1] => 代码:110 [item_name_2] => 侧板 [item_quantity_2] => 1 [item_price_2] => 4 [item_options_2] => 代码:125 [item_name_3] => 搅拌碗 [item_quantity_3] => 1 [ item_price_3] => 4 [item_options_3] => 代码:66

我正在努力(并绕圈子)是一种执行以下操作的方法..

分解 [item_options] 变量以去除 CODE: 值的一部分,只留下数字部分。

将这些值连接成一个字符串,这样我就可以使用 SELECT 语句来仅提取在 [item.options] 中传递了 ID 的记录。

我了解如何展开单个参数,但无法弄清楚如何循环遍历数组、展开键并创建我需要的 SQL 值。

任何帮助或相关教程的指针将不胜感激

4

1 回答 1

0
$codes = array();
foreach ($_POST as $key => $value) { // Loop through the $_POST array
  if (preg_match('/^item_options_/', $key)) { // And validate the value
    $item_arr = explode(' ', $value);
    $item_id = $item_arr[1]; // Get the ID number from the value
    if (is_numeric($item_id)) { // Validate it
      $codes[] = $item_id; // Add it to the array we're building
    }
  }
}
$codes_string = implode(', ', $codes); // Concatenate them into a string that can be used in a SQL IN clause

$sql = "SELECT * from table WHERE id IN ($codes_string)"; // Build the SQL
于 2013-06-25T01:09:15.257 回答