Katakanlah saya memiliki larik seperti ini:
$array = array('', '', 'other', '', 'other');
Bagaimana saya bisa menghitung jumlah dengan nilai tertentu (dalam contoh kosong)?
Dan melakukannya secara efisien? (untuk sekitar selusin larik dengan ratusan elemen masing-masing) Contoh ini habis waktu (lebih dari 30 detik):
function without($array) {
$counter = 0;
for($i = 0, $e = count($array); $i < $e; $i++) {
if(empty($array[$i])) {
$counter += 1;
}
}
return $counter;
}
Dalam hal ini jumlah elemen kosong adalah 3.
Hanya sebuah ide, Anda bisa menggunakan array_keys( $myArray, "" )
menggunakan parameter kedua opsional yang menentukan nilai pencarian. Kemudian hitung hasilnya.
$myArray = array( "","","other","","other" );
$length = count( array_keys( $myArray, "" ));
Saya tidak tahu apakah ini akan lebih cepat, tetapi ini adalah sesuatu yang bisa dicoba:
$counter = 0;
foreach($array as $value)
{
if($value === '')
$counter++;
}
echo $counter;