2017-07-13 93 views
0

我有一個array的ID,大量的ID發生多次,我使用array_count_values()來計數每個發生的次數。使用array_count_values導致foreach循環

我想做一些事情,如果一個特定的ID發生超過3次,我只是不知道如何獲得array_count_values()結果到一個foreach循環,所以我可以使用它。

任何幫助表示讚賞!

$array = array("297","297","297","297","188","188"); 

print_r(array_count_values($array)); 

// loop room booking data 
foreach($array as $key => $val) { 

    // if the ID occurs more than 3 times 
    if ($val > '3') { 
     // do something 
    } 

} 

回答

1

分配array_count_value結果給一個變量,並通過該值來foreach循環像下面

<?php 
    $array = array("297","297","297","297","188","188"); 

    $array1 = array_count_values($array); // assign result to array1 variable 

    // loop room booking data 
    foreach($array1 as $key => $val) { 

     // if the ID occurs more than 10 times 
     if ($val > '3') { 
      // do something 
      echo $key; // return value e.g 297 
      echo $value; // return no. of times ID occure e.g. 4 

     } 

    } 
    ?> 

running Code

+0

謝謝你的作品,但是我怎麼迴應在// do something部分出現3次以上的ID呢?我似乎只能得到多少次的ID發生的價值,但不是實際的ID –

+0

@TheBobster檢查我的代碼我有'echo $ key'它會給你ID – Narayan

+0

謝謝,不知道我是如何錯過了! –

3

將函數的結果賦值給變量,然後遍歷該變量。

$frequencies = array_count_values($array); 
foreach ($frequencies as $id => $count) { 
    if ($count > 3) { 
     echo "$id occurs $count times<br>"; 
    } 
} 
+0

由於其工作原理,但我怎麼回聲發生超過3的ID在//中做些什麼節?我似乎只能得到ID發生次數的值,而不是實際ID –

+0

'$ key'包含ID。 – Barmar