PHP数组爆炸

时间:2011-12-14 17:49:43

标签: php arrays explode

我在数组中插入数据,称为以下内容:

["Levels_SanctionLevel_array"]=>
string(14) "IR01,IR02,IR03"

我需要爆炸这些数据并将每个值作为mysql内的一行输入。如

pri_id   value
---------------
01       IR01
02       IR02
03       IR04

现在我遇到困难的是: 上面列出的数组可以有1个值,3个值(现在我显示三个值)或5个值,我不想在我的数据库中输入NULL值。 感谢任何人可以分享的任何指导...

4 个答案:

答案 0 :(得分:3)

$data = explode(',',$your_string);
foreach ($data AS $value) {
  // INSERT INTO DB
}

答案 1 :(得分:0)

为什么不在数组上使用迭代器来构造sql查询?这样,您只会在数组中插入尽可能多的元素。

就像上面的答案一样。我想我们正在同时回答。

答案 2 :(得分:0)

假设您的主要数组是$data

foreach ($data as $values)
{
    $value = explode(",", $values);

    foreach ($value as $v)
    {
        $sql = "INSERT INTO table(value) VALUES('$v')";
    }
}

答案 3 :(得分:0)

一个简单的循环正常工作,但缺点是对数据库进行多次查询:

$str = "IR01,IR02,IR03";
$vals = explode(',', $str);
foreach ($vals AS $value) {
  // insert into database
}

由于数据库操作比在PHP中构建查询更重要,我会选择为单个查询生成SQL代码,如下所示:

$str = "IR01,IR02,IR03";
$vals = explode(',', $str);

$query = 'INSERT INTO my_data VALUES ';

foreach ($vals as $value) {
 $query .= "('', '".$value."'),";
}

$query = rtrim($query, ',');

// insert into database