从数组中提取所需的项目

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);

CodePad example