2013-06-26 2 views
-5

Эй у меня есть массив двутавровой нужно отделить каждое значение, так что это будет что-то вроде этогоРазделительные Переменные Внутри массива

$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

Мой вопрос: массив случайный, выше я просто упорядочиваю его в последовательном, иногда массив будет (a, v, d, z, l, m) -> Мне нужно, чтобы последовательность, чтобы a-> v, v -> d, d-> z ect. thats my problem – jake

+0

Вы все еще не поняли, что вы подразумеваете под случайным ...... как это случайное, и как его нужно организовать для работы в вашем запросе ??? Вам нужно быть более понятным относительно того, что вам нужно, если вы хотите помочь, я бы предложил добавить к вашему вопросу, ЧТО ВАМ НАСТОЯТЕЛЬНО НУЖНО, независимо от случайности, то, что вы набрали в своем комментарии к моему ответу, показало мне, что хотя письма вы выбрали случайные, заказ был все тот же – KyleK

ответ

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') 

и пр.

+0

да, но точно, но как бы я извлек a-> b, b-> c, c-> d из массива из другой функции, иногда массив (a, r, s, t, b) – jake

1

использования extract

извлечет элементы из массива переменных с помощью ключ как имя.

+0

, но массив случайный, выше я просто упорядочиваю его в последовательном порядке, иногда массив должен быть (a, v, d, z, l, m) -> мне нужно перевести это в a-> v, v-> d, d-> z ect. thats моя проблема – jake

2

Простой список использования();

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') 

EDIT

Ok основан на том, что вам нужно ниже в комментариях, я работал на простое решение для вас ....

$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); 
+0

, но массив случайный, выше я просто устраиваю его в последовательном, иногда массив будет (a, v, d, z, l, m) -> мне нужно перевести это в a-> v, v-> d, d-> z ect. вот моя проблема – jake

+0

, так что проблема ..... со списком у вас есть доступ к переменным, в вашем примере a-> v v-> d, d-> z то же самое, что и point1-> point2 point2-> point3 point3-> point4, у вас не спрашивали, что в вашем вопросе вы даже не упомянули, что – KyleK

+0

им жаль, что я новичок в этом форуме, я встречаюсь с ошибкой во время публикации :-(Я не закончил свой вопрос, когда я нажимаю сообщение, я думал, что я проблема с моим соединением – jake