Başında ve dizinin sonundan boş satırları trim en hızlı yolu nedir?

1 Cevap php

Bu komut:

<?php

$lines[] = '';
$lines[] = 'first line   ';
$lines[] = 'second line ';
$lines[] = '';
$lines[] = 'fourth line';
$lines[] = '';
$lines[] = '';

$lineCount = 1;
foreach($lines as $line) {
    echo $lineCount . ': [' . trim($line) . ']<br/>'; 
    $lineCount++;
}

?>

Bu çıktıyı üretir:

1: []
2: [first line]
3: [second line]
4: []
5: [fourth line]
6: []
7: []

Aynı zamanda preceding ve trailing boş girdiler ama not the interior boş girdileri siler, böylece çıktılar böylece yukarıdaki komut dosyasını değiştirmek için en hızlı, en etkili yolu nedir Bu:

1: [first line]
2: [second line]
3: []
4: [fourth line]

Ben foreach döngüsü kullanabilirsiniz ama array_filter veya çok daha verimli benzer bir şey ile bir yolu var olduğunu düşünün.

1 Cevap

Orada array_slice kesilmiş dizi oluşturmak için.

function trimLines($lines) {
    $end = count($lines);
    for ($start=0; $lines[$start] === ''; ++$start) {
        if ($start == $end) {
            return array();
        }
    }
    do { --$end; } while ($lines[$end] === '');
    return array_slice($lines, $start, $end-$start+1);
}