通过比较值PHP,从两个不同的数组创建一个大数组

时间:2012-09-15 12:05:55

标签: php mysql arrays multidimensional-array

我有一个包含报告的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);

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

不久,再一次:

  1. $ array_lat;
  2. 中有不同的值
  3. 我想用输入$ array_lat
  4. 检查函数fillItByRoute()
  5. 结果,适合必须存储在新阵列中。
  6. 新数组应该是值(使用我的$ array_lat的值):25.5666332,25.511433,23.1233,23.11444,23.1,45.269 ......等等,甚至可能是数百个项目。
  7. 是否可以做类似的事情?

    非常感谢!

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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){
        }
    }
}