if I have an array structured like:
[0] => bad
[1] => good
[2] => bad
[3] => bad
[4] => good
[5] => bad
[6] => bad
[7] => good
[8] => bad
[9] => bad
[10] => good
[11] => bad
And i need an array with only good items like:
[0] => good
[1] => good
[2] => good
[3] => good
[4] => good
How can I do ?
you can use array_filter function :
$good_value ="good";
$new_array = array_filter($old_array,function($value)use($good_value){
return $value === $good_value;
});
You could also use an approach that utilizes foreach
and array_push
:
$goodArray = array();
foreach($array as $value) {
if $value = "good" {
array_push($goodArray, $value);
}
}
or if you want to maintain the original indices:
$goodArray = array();
foreach($array as $key => $value) {
if ($value = "good") {
$goodArray[$key] = $value;
}
}
You could just use a loop
$newArray = array();
foreach($oldArray as $value) {
if($value == 'good')
$newArray[] = $value
}
of if you need to retain the keys
$newArray = array();
foreach($oldArray as $key=>$value) {
if($value == 'good')
$newArray[$key] = $value
}
Use PHP's array_filter() function.
function good($var)
{
return($var == "good");
}
$ary = array_filter($ary, "good");
print_r($ary);
If you need to re-index the array, just add this:
$ary = array_values($ary);