分离数组内的变量

时间:2013-06-26 02:38:38

标签: php mysql

嘿,我有一个数组,我需要分隔每个值,所以它会是这样的

$arry = array(a,b,c,d,e,f)
$point1 = (SELECT distance FROM Table WHERE Origin = a AND Destination = b);
$point2 = (SELECT distance FROM Table WHERE Origin = b AND Destination = c);
$point3 = (SELECT distance FROM Table WHERE Origin = c AND Destination = d);
$point4 = (SELECT distance FROM Table WHERE Origin = d AND Destination = e);
$point5 = (SELECT distance FROM Table WHERE Origin = e AND Destination = f);
$point6 = (SELECT distance FROM Table WHERE Origin = f AND Destination = g);
$point7 = (SELECT distance FROM Table WHERE Origin = g AND Destination = f);

$total_trav = $point1+$point2+$point3+$point4+$point5+$point6+$point7

3 个答案:

答案 0 :(得分:2)

简单使用list();

list($point1,$point2,$point3,$point4,$point5) = $arry;

然后像你这样做你的查询......

$sql = "SELECT SUM(distance) FROM table WHERE (origin='$point1' AND destination='$point2') OR (origin='$point2' AND destination='$point3') OR (origin='$point3' AND destination='$point4') OR (origin='$point4' AND destination='$point5')

修改

根据评论中你需要的内容,我为你制定了一个简单的解决方案......

$arr = array("Vegas","Iowa","Utah","Washington"); //your array

//First part of query string build... 
$sql = "SELECT SUM(distance) FROM table WHERE";

//Loop through the array...based on its # of contents
for($i=0;$i<count($arr);$i++){
   if(!empty($arr[$i+1])){
   $sql.=" (origin='".$arr[$i]."' AND destination='".$arr[$i+1]."') OR";}
 }
  //Hack off the end bit, which contains an OR appended to the string...
  $sql = substr($sql, 0, -3);

  //$sql is now ready to be used in a query
  mysql_query($sql); 

答案 1 :(得分:1)

使用extract

将使用键作为名称将数组中的元素提取到变量。

答案 2 :(得分:1)

这一切都可以在SQL中完成:

SELECT SUM(distance) 
FROM table 
WHERE (origin='a' AND destination='b') 
   OR (origin='b' AND destination='c')
   OR (origin='c' AND destination='d')

等等。