2

我有一个带有报告的 MySQL 表。获取我的报告由函数使用:

function fillItByRoute($lat){
global $db;
$array = array(array());
$result = $db->query("SELECT * FROM reports WHERE latitude LIKE '$lat%' ORDER BY datetime_view");
    while ($row = $db->fetch_array($result)){
        $array[$int][1] = "Desc";
        $array[$int][2] = $row['latitude'];
    }
return $array;

}

它创建了一个多维数组。

  • [MySQL 中的纬度存储为 25.33236645、23.2665666 等...]

我有一个不同的数组:

$array_lat = array(25.5,23.1,45.2);

所以,我想知道是否可以通过 $array_lat 的数组值检查与函数 fillItByRoute() 创建的多维数组中的值的匹配并将函数 fillItByRoute() 的值存储在新数组中?

不久,再来一次:

  1. $array_lat 中有不同的值;
  2. 我想用 $array_lat 的输入检查函数 fillItByRoute()
  3. 结果,哪些西装必须存储在新数组中。
  4. 新数组应该有值(使用我的 $array_lat 的值):25.5666332、25.511433、23.1233、23.11444、23.1、45.269...等,甚至可以是数百个项目。

有可能做这样的事情吗?

非常感谢你!

4

2 回答 2

0

如果我对您的意思的假设是正确的,那么这就是您所追求的:

function fillItByRoute($lat){
   global $db;
   $array = array(array());
   $result = $db->query("SELECT * FROM reports WHERE latitude LIKE '$lat%' ORDER BY datetime_view");
    while ($row = $db->fetch_array($result)){
        $latitude = number_format((float)$row['latitude'], 2, '.', '');
        if (in_array($latitude,$lat)) {
           $array[$int][1] = "Desc";
           $array[$int][2] = $row['latitude'];
        }
    }
    return $array;
}
于 2012-09-15T12:27:36.213 回答
0

我想你想要这样的东西。它遍历您的 array_lat 并将其与 SQL 中的值进行比较。我不完全确定你想用比较做什么,但你应该把它放在第二个函数的 if 语句中。如果您想要一个新数组,看起来您了解如何创建这些数组,但如果这太模棱两可,请告诉我。

function fillItByRoute($lat){
global $db;
$array = array(array());
$result = $db->query("SELECT * FROM reports WHERE latitude LIKE '$lat%' ORDER BY datetime_view");
    while ($row = $db->fetch_array($result)){
        $array[$int][1] = "Desc";
        $array[$int][2] = $row['latitude'];
    }
return $array;

function compareArrToSql($array_lat){
    for($curr_lat = 0; $curr_lat<count($array_lat); $curr_lat++){
        $sql_val = fillItByRoute($array_lat[$curr_lat]);
        if($array_lat[$curr_lat]==$sql_val){
        }
    }
}
于 2012-09-15T13:12:59.337 回答