【问题标题】:Creating one big array from two different arrays by comparing values PHP通过比较值 PHP 从两个不同的数组创建一个大数组
【发布时间】:2012-09-08 08:50:04
【问题描述】:

我有一个带有报告的 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...等,甚至可以是数百个项目。

有可能做这样的事情吗?

非常感谢!

【问题讨论】:

  • 什么是$int,$lat,你要检查什么
  • 因此,如果您在 $array_lat 中有值 25.5 ,并且您从 mysql 收到 25.5666332 值,那么您希望 mysql 返回的值在您的新数组中..这就是您的意思吗?
  • @Nelson 是的,25.5 中包含的所有值,(IE,你的:25.5666332)都应该通过;

标签: php mysql arrays multidimensional-array


【解决方案1】:

我想你想要这样的东西。它遍历您的 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){
        }
    }
}

【讨论】:

    【解决方案2】:

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

    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;
    }
    

    【讨论】:

    • 但我想比较(使用 MySQL LIKE)来自 $array_lat 的值。在您的代码中根本看不到 $array_lat 变量。
    • $array_lat 通常有多少项?因为它们需要插入到 sql 中以执行您想要的操作,如果数组太大,则 sql 将有长度限制..
    • 大约 10 - 50(最大 100)
    • 抱歉,再看不懂你想要什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    相关资源
    最近更新 更多