0

まず、助けてくれてありがとう。

私はここや他のフォーラムで私の正確な解決策を見つけるために数え切れないほどの時間を費やしましたが、1)私が読んだものを理解していないか2)正しい答えを見つけられませんでした。

PHPでは、次のようなレコードのセットを返すやや複雑なクエリを実行しました。

id | name | direction| 
1    aaa    east
2    bbb    west
3    ccc    east

次のような連想配列を作成しました。

$query=("select * from foo");
$result=mysql_query($query);
$array=mysql_fetch_assoc($result);

さて、やらなきゃいけないことは簡単そうに見えますが、どういうわけかコンセプトがわかりません。$ array全体をループして、指定したい値のカウントを返し、そのカウントを変数に格納する必要があります。

つまり、「方向」列に東が表示される回数を表示し、それを。という変数に入れます$eastcount

foreach増分カウントでループを使用するさまざまな組み合わせを試しましたが、使用してみarray_count_valuesましたが、ピースをまとめることができませんでした:/

4

4 に答える 4

1

これでうまくいくはずです (私の iPhone ではコード ブロックが不足していて申し訳ありません)。

http://www.php.net/manual/en/function.array-count-values.php

$array = array(1, "hello", 1, "world", "hello"); print_r(array_count_values($array));

配列 ( [1] => 2 [こんにちは] => 2 [世界] => 1 )

于 2013-02-20T01:47:52.700 に答える
1

これはどう:

query=("select * from foo");
$result=mysql_query($query);

$directions = array();

while($direction = mysql_fetch_assoc($result) {
   $directions[] = $direction['direction'];
}

$directionCounts = array_count_values($directions);

//now you can access your counts like this:
    echo $directionCounts['east'];
于 2013-02-20T01:49:33.737 に答える
1
// build query
$query=("select * from foo");

// execute query
$result=mysql_query($query);

// declare vars
$east_count = 0;

// iterate through results
while ($data = mysql_fetch_array($result)) {

    // grab DIRECTION column value
    $direction = $data['direction'];

    // detect 'east'
    if ($direction == 'east') {

        // increment 'east' count
        $east_count++;
    }
}

// print # of times we had 'east'
echo("direction said 'east' $east_count times");
于 2013-02-20T01:51:15.427 に答える
0

まず、代わりに mysqli を使用する必要があります。しかし、とにかく、これが何らかの意味を持っていることを願っています。

if ($result) {
    $count = 0;
    while ( $row = mysql_fetch_assoc($result)) {
        if ($row["route"] === "east") {
            $count += 1;
        }
    }
    return $count;
}
于 2013-02-20T01:48:37.627 に答える