Remove array element based on its character length

2k Views Asked by At

I have an array in PHP as:

$array = array("Linda","Chadwick","Bari","Angela","Marco");

Therefore,

 $array[0]="Linda"  
 $array[1]="Chadwick"  
 $array[2]="Bari"  
 $array[3]="Angela"  
 $array[4]="Marco"  

I want to remove the names having string length <=4.

So that, the keys are adjusted.

$array[0]="Linda"
$array[1]="Chadwick"  
$array[2]="Angela"  
$array[3]="Marco"  
2

There are 2 best solutions below

5
On BEST ANSWER

You can simply use it using array_filter only along with strlen

$array = array("Linda","Chadwick","Bari","Angela","Marco");
$result = array_filter($array,function($v){ return strlen($v) > 4; });
print_r($result);

$result = array();
array_walk($array,function($v) use (&$result){ if(strlen($v) > 4){$result[] = $v;} });
print_r($result);

array_filter

array_walk

1
On

Use array_filter and then array_values to reset the keys sequence:

$array = array("Linda","Chadwick","Bari","Angela","Marco");
$array = array_values(array_filter($array, function($v) {
    return strlen($v) > 4;
}));
print_r($array);

Output:

Array ( [0] => Linda [1] => Chadwick [2] => Angela [3] => Marco )