PHP while循环只显示唯一值

时间:2017-02-10 13:36:40

标签: php while-loop

我有一个包含以下信息的数组:

Country          C_Count          C_Resp          Location          L_Count          L_resp

UK               100              10              London            20               5
UK               100              10              Manchester        80               5
France           20               3               Paris             10               1
France           20               3               Lyon              10               2

我正在使用WHILE循环,并希望循环进入一个表格,该表格显示Country,C_Count和C_Resp一次和位于每个位置的位置,L_Count和L_resp之下。

目前,正在发生的事情是Country,C_Count和C_Resp出现次数与位置一样多。

输出将是这样的:

Country/ Location    Count     Resp
UK                   100       10
London               20        5
Manchester           80        5
France               20        3
Paris                10        1
Lyon                 10        2

不确定在WHILE循环中是否可行 - 欢迎任何想法或建议。

2 个答案:

答案 0 :(得分:1)

让我试一试:

获取所有可用的国家/地区:

$countries = [];

function in_array_r($item , $array){
    return preg_match('/"'.$item.'"/i' , json_encode($array));
}

foreach($array as $a){
    if(!in_array_r($a['Country'], $countries)){
        $country['country'] = $a['Country'];
        $country['count'] = $a['C_Count'];
        $country['resp'] = $a['C_resp'];
        $countries[] = $country;
    }
}

然后回复国家的相关数据:

echo "Country\Location\tCount\Resp";

foreach($countries as $c){
    $data = '';
    echo $c['country']."\t".$c['count']."\t".$c['resp']."\n";
    foreach($array as $a){
        if($a['Country']==$c['country']){
            $data .= $a['Location']."\t".$a['L_Count']."\t".$a['L_resp']."\n";
        }
    }
    echo $data;
}

答案 1 :(得分:-1)

<?php
echo "<tr>";
$result = mysqli_query($mysqli, "SELECT DISTINCT City_Operation FROM SA_State_City_operation");
while($user_data = mysqli_fetch_array($result))
{
    echo "<option>".$user_data['City_Operation']."</option>";
    echo "</tr>";
}
?>

参见在 mysql 查询中使用 DISTINCT