将值的位置存储在数组到数据库表列中

时间:2012-11-08 18:51:04

标签: php mysql

我是一个完整的PHP / MySQL新手,非常感谢帮助将数组中每个值的位置存储到相应的DB表列中。数组中的值本身对应于DB表中的一列。

在我的php表单处理页面中,我有数组$ rankArray,其中每个值对应于我的数据库表中的一列。我想要做的是将每个值的位置保存到其对应的列。例如,如果

$rankArray = [2,5,3,4,1]

它应该在第2列存储'1',在第5列存储'2',在第3列存储'3'等等。

2 个答案:

答案 0 :(得分:1)

我会做类似的事情:

$rankArray = [2,5,3,4,1];
$flipped = array_flip($rankArray);
ksort($flipped);

现在翻转应按此顺序排列:[5,1,3,4,2]并且您的值可以插入到正确的列中。

这是有效的,因为array_flip返回一个数组,其中键和值被翻转,然后ksort确保数组键被排序。

答案 1 :(得分:0)

尝试:

$query = "INSERT INTO TABLENAME VALUES (";
$rankArray = array(2,5,3,4,1);
sort($rankArray);
foreach($rankArray as $k => $v) {
$query .= "'" . $v . "'";
if(isset($rankArray[$k+1]))
  $query .= ",";
}
 $query .= ")";
 print_r($query);

Demo

注意:不推荐使用Mysql扩展,如果可能,请使用Mysqli或PDO_Mysql。