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

それで、関数fillItByRoute()によって作成された多次元配列の値との一致をチェックし、関数fillItByRoute()の値を新しい配列に格納することで、$array_latの配列値を取得できるかどうかを知りたいですか?

もう一度、簡単に:

  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 の値と比較します。比較で何をしたいのか完全にはわかりませんが、2 番目の関数の 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 に答える