Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou gerando arrays com valores mais ou menos assim:
sar_3,cur_40,cur_41,cur_115,dar_56,aar_57
Quero eliminar todos os valores que não possuem o prefixo cur_, ou seja, aar_x | dar_x | sar_x, somente deixando os cur_x.
Não sei se este início de preg_replace está correto?
(\w+)_(\d+)(\,?)
Obrigado.
Veja uma solução sem utilizar expressão regular:
<?php
function remove_items( &$array ) {
$size = count( $array );
for( $i = 0; $i < $size; ++$i ) {
if ( substr( $array[$i], 0, 4 ) != 'cur_' ) {
unset( $array[$i] );
}
}
}
$array = array( 'sar_3', 'cur_40', 'cur_41', 'cur_115', 'dar_56', 'aar_57' );
remove_items( $array );
print_r( $array );
?>
Uma possível solução seria esta.
preg_replace('/(aar|dar|sar)_(\d+)(\,?)/', '', 'sar_3,cur_40,cur_41,cur_115,dar_56,aar_57');