php number compare Array -
i have student examiner language level
example:
(8,8,9,8,7) repeat number "8" "8"
(7,7,8,9,10) repeat number "7" "7"
(7,8,9,10,9) no repeat number last "9"
(7,7,8,8,9) forget "7" > last repeat number "8"
(7,7,8,9,9) forget "7" >get last repeat number "9"
code here
//get duplicate function getarraydups($array) { $counts = array_count_values($array); return array_filter( $counts, create_function( '$val', 'return($val > 1);' ) ); }
// usage test: $test = array('8','8','7','7','7'); $result = getarraydups($test); if(count($result)) { echo "<p>you had 1 or more duplicate entries:</p>\n<ul>\n"; foreach($result $entry => $count) { if ($count >= 3){ echo "<li> level $entry ($count)</li>"; break; } echo "<li> level $entry ($count)</li>"; } } else { //echo end($test); echo "<li>no duplicates level found. last level." . end($test) . "</li>"; }
wondering if had other ideas how might achieve this.
if (8,8,9,8,7)
string can convert array using explode
, use array_count_values
, if data array (like $arr = [8,8,9,8,7]
) directly use array_count_values
so you'd doing like:
<?php $str = '8,8,9,8,7'; $arr = explode(',', $str); $arrcount = array_count_values($arr); $temp= false; for($i=count($arr)-1;$i> 0;$i--) { if($arrcount[$arr[$i]] > 1) { echo "last repeat is: ".$arr[$i]; $temp = true; break; } } if(!$temp) echo "no repeat found"; ?>
Comments
Post a Comment