1

目標は、最小、中、最大の距離を抽出することです。最短距離が正常に達成されました。ただし、中間距離と最高距離はより複雑です。

アレイの内容を以下に示します。アレイ名:$ array

Array
(
    [0] => Array
        (
            [city] => Array
                (
                    [0] => Reduit
                    [1] => Curepipe
                )

            [distance] => 200
        )

    [1] => Array
        (
            [city] => Array
                (
                    [0] => Array
                        (
                            [0] => Reduit
                            [1] => Ebe
                        )

                    [1] => Bees Village
                    [2] => Phoen Trunk Rd
                    [3] => Riv,Phoenix
                    [4] => St l Rd
                    [5] => Geoes Guibert St
                    [6] => Curepipe
                )

            [distance] => 151
        )

    [2] => Array
        (
            [city] => Array
                (
                    [0] => Array
                        (
                            [0] => Reduit
                            [1] => Riv,Phoenix
                        )

                    [1] => St l Rd
                    [2] => Geoes Guibert St
                    [3] => Curepipe
                )

            [distance] =>50
        )

    [3] => Array
        (
            [city] => Array
                (
                    [0] => Array
                        (
                            [0] => Reduit
                            [1] => Ebene
                        )

                    [1] => Belles Village
                    [2] => Phoenix Trunk Rd
                    [3] => Riverside,Phoenix
                    [4] => St Paul Rd
                    [5] => Georges Guibert St
                    [6] => Curepipe
                )

            [distance] => 101
        )

)

誰かがどこが間違っているか教えてもらえますか?私の働きは

$current = $array[0]['distance'];

for($middleDistance=1;$middleDistance<$total;$middleDistance++){

    $next = $array[($middleDistance)]['distance'];

    if ($next<$current){

            $current = $next;

            print_r($current);

            if($current>50&&$current<100){


            }
    }

}
4

1 に答える 1

0

配列を値で並べ替えて、そこから最小/中間/最大を取得してみませんか?真ん中の要素に最も近いものが本当に必要な場合は、距離が偶数の場合に、真ん中の2つの要素を比較する必要があります。また、ここではそれらを使用しませんでしたが、PHPの最小関数と最大関数に注意してください:http: //php.net/manual/en/function.min.php
http://php.net/manual/en /function.max.php

$arr = array(200, 151, 50, 101);                                                                                                                    

sort($arr, SORT_NUMERIC);                                                                                                                           

if (count($arr)) {                                                                                                                                  
  $min = current($arr);                                                                                                                             
  $max = end($arr);                                                                                                                                 

  $mid = $arr[round(count($arr) / 2) - 1];                                                                                                                
}
于 2012-05-27T13:52:38.310 に答える