0

私はこの構造の配列を持っています:

Array
(
    [mysite] => Array
        (
            [0] => Array
                (
                    [0] => uniqueid
                    [1] => brand
                    [2] => horsepower
                    [3] => topspeed
                )

            [1] => Array
                (
                    [0] => uniqueid
                    [1] => brand
                    [2] => horsepower
                    [3] => topspeed
                )

            [2] => Array
                (
                    [0] => uniqueid
                    [1] => brand
                    [2] => horsepower
                    [3] => topspeed
                )
        )
)

すべての車には、ブランド、馬力などが続く「ユニーク」があります。

ランダムな車の情報を取得したい場合は、次のようにします。

$rkey = array_rand($sites['mysite'], 1); // get a random key
$car_info = $myarray['mysite'][$rkey];

ある「ユニーク」を使って情報を得る方法について何かアイデアはありますか?

$car_info = "get the information of a car with a certain uniqueid";

Ty!

4

3 に答える 3

0

試す、

forループ内に一意のIDを渡すと、目的の結果が得られます。

$array = array(

  0   => Array
            (
                0 => 'uniqueid0',
                1 => 'brand',
                2 => 'horsepower',
                3 => 'topspeed',
            ),
  1   => Array
            (
                0 => 'uniqueid1',
                1 => 'brand',
                2 => 'horsepower',
                3 => 'topspeed',
            ),
  2  => Array
            (
                0 => 'uniqueid2',
                1 => 'brand',
                2 => 'horsepower',
                3 => 'topspeed',
            ),
  3  => Array
            (
                0 => 'uniqueid3',
                1 => 'brand',
                2 => 'horsepower',
                3 => 'topspeed',
            ),
);


  foreach($array as $arr){
    if($arr[0] == 'uniqueid2'){
      $result = $arr;
      break;
    }
  }

print_r($ result);

出力:

配列([0] => uniqueid2[1]=>ブランド[2]=>馬力[3]=>topspeed)

于 2012-12-07T06:19:10.713 に答える
0
$uniqueid = 12345;

foreach ($myarray['mysite'] as $car) {
    if($car[0] == $uniqueid) {
        $car_info = $car;
        break;
    }
}
于 2012-12-07T06:20:00.340 に答える
0

uniqueidが車全体で一意である場合は、次のように配列を再構築してみてください。

もし可能なら

Array (
    [mysite] => Array
    (
        [uniqueid1] => Array
            (
                [0] => uniqueid1
                [1] => brand
                [2] => horsepower
                [3] => topspeed
            )

        [uniqueid2] => Array
            (
                [0] => uniqueid2
                [1] => brand
                [2] => horsepower
                [3] => topspeed
            )

        [uniqueid3] => Array
            (
                [0] => uniqueid3
                [1] => brand
                [2] => horsepower
                [3] => topspeed
            )
    )
)

このようにして、uniqueidの車に直接アクセスでき、ランダムロジックを適用することもできます

そうでない場合は、@JevgeniBogatyrjovソリューションが適切に機能します

foreach ($myarray['mysite'] as $car) {
    if($car[0] == $uniqueid) {
        $car_info = $car;
        break;
    }
}
于 2012-12-07T06:35:11.737 に答える