redarrow Posted October 11, 2008 Share Posted October 11, 2008 how do u check to see if somethink in a array twice please.... my example dosent work so how........ if there two names the same in a array i wont it... <?php $a=array("john","paul","john"); $name="john"; for($i=1; $i<3; $i++){ if(in_array($name,$a)){ echo " in array"; }else{ echo "not in array"; } } ?> Link to comment https://forums.phpfreaks.com/topic/128042-in-array-twice-help/ Share on other sites More sharing options...
DarkWater Posted October 11, 2008 Share Posted October 11, 2008 EDIT: Misunderstood. Here: <?php $arr = array('john', 'paul', 'john'); $count = array_count_values($arr); $name = 'john'; if ($count[$name] > 1) { echo "$name is a dup!"; } else { echo "$name is NOT a dup!"; } Link to comment https://forums.phpfreaks.com/topic/128042-in-array-twice-help/#findComment-663025 Share on other sites More sharing options...
redarrow Posted October 11, 2008 Author Share Posted October 11, 2008 my current array looks like this........... Array ( [0] => 73.99.134.50 ) Array ( [0] => 37.939.163.50 ) Array ( [0] => ) my code <?php $filename = "downloads.log" ; $dataFile = fopen( $filename, "r" ) ; if ( $dataFile ){ while (!feof($dataFile)){ $buffer = fgets($dataFile, 4096); $pattern="/([0-9\.]{0,4}[0-9\.]{0,4}[0-9\.]{0,4}[0-9]{0,4})/i"; preg_match_all($pattern,$buffer,$result[]); $x=implode(' ',$result[0][0]); $y=explode(' ',$buffer); print_r($y); $users_ip=$_SERVER['REMOTE_ADDR']; $count = array_count_values($y); if ($count[$users_ip] == 2) { echo "<center>SORRY OUR RECORDS SHOW US THAT YOU HAVE ALREADY <br> DOWNLOADED YOUR FILE PLEASE CONTACT US!<center>"; EXIT; } } fclose($dataFile); }else{ die( "fopen failed for $filename" ) ; } ?> it wont find the two matches becouse how the array comes out any other idears mate....... i can not use buffer[0][0] currently the $x implode shows the correct results, but when i use explode you see from the array my results...... Link to comment https://forums.phpfreaks.com/topic/128042-in-array-twice-help/#findComment-663048 Share on other sites More sharing options...
Stooney Posted October 12, 2008 Share Posted October 12, 2008 Another way to determine if there's a duplicate in an array <?php $array=array('a', 'b', 'c', 'a'); foreach($array as $var){ if(count(array_keys($array, $var))>1){ echo $var.' is in the array more than once<br>'; } else{ echo $var.' is a unique value in the array<br>'; } } ?> Link to comment https://forums.phpfreaks.com/topic/128042-in-array-twice-help/#findComment-663104 Share on other sites More sharing options...
wildteen88 Posted October 12, 2008 Share Posted October 12, 2008 my current array looks like this........... Array ( [0] => 73.99.134.50 ) Array ( [0] => 37.939.163.50 ) Array ( [0] => ) my code <?php $filename = "downloads.log" ; $dataFile = fopen( $filename, "r" ) ; if ( $dataFile ){ while (!feof($dataFile)){ $buffer = fgets($dataFile, 4096); $pattern="/([0-9\.]{0,4}[0-9\.]{0,4}[0-9\.]{0,4}[0-9]{0,4})/i"; preg_match_all($pattern,$buffer,$result[]); $x=implode(' ',$result[0][0]); $y=explode(' ',$buffer); print_r($y); $users_ip=$_SERVER['REMOTE_ADDR']; $count = array_count_values($y); if ($count[$users_ip] == 2) { echo "<center>SORRY OUR RECORDS SHOW US THAT YOU HAVE ALREADY <br> DOWNLOADED YOUR FILE PLEASE CONTACT US!<center>"; EXIT; } } fclose($dataFile); }else{ die( "fopen failed for $filename" ) ; } ?> it wont find the two matches becouse how the array comes out any other idears mate....... i can not use buffer[0][0] currently the $x implode shows the correct results, but when i use explode you see from the array my results...... Are you separating IP addresses by a space within your downloads.log? You'll be better of logging each separate IP on a new line. Then you can just use the following code: $log_file = 'downloads.log'; // file() returns an array of lines $ip_log = file($log_file); // remove new lines $ip_log = array_map('trim', $ip_log); // check to see if the users ip is in the $ip_log array if(in_array($_SERVER['REMOTE_ADDR'], $ip_log)) { echo 'Downloaded'; } else { echo 'Not downloaded'; } Link to comment https://forums.phpfreaks.com/topic/128042-in-array-twice-help/#findComment-663276 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.