I have an array("https", "www", "stackoverflow", "com")
$search_array = array("https", "www", "stackoverflow", "com");
for ($i=0; $i < count($search_array); $i++) {
if (
$search_array[$i] == null ||
strtolower($search_array[$i]) == "http" && count($search_array) > 1 ||
strtolower($search_array[$i]) == "https" && count($search_array) > 1 ||
strtolower($search_array[$i]) == "www" && count($search_array) > 1 ||
strtolower($search_array[$i]) == "com" && count($search_array) > 1
) unset($search_array[$i]);
}
die(print_r($search_array));
I want the result array("stackoverflow");, but im getting the result array("stackoverflow", "com"); any idea?
foreach()instead of afor()loop:foreach($search_array as $i => $domain) {(3v4l.org/41FYo for reference)count($search_array), the count will go down in each for loop. thanks$c = count($search_array); for ($i=0; $i < $c; $i++) {. Just do the count before the loop. (Also, in general a good idea to avoid functions in a loop condition, waste of cycles to re-evaluate at each loop.)