Saya hanya perlu memeriksa apakah array memiliki lebih dari satu elemen. Saya mencoba melakukannya dengan cara ini:
if (isset($arr['1']))
cara tradisional lainnya adalah
if (sizeof($arr)>1)
Manakah dari keduanya yang lebih baik? Dalam situasi seperti itu, bagaimana saya harus menilai antara dua metode alternatif? Apakah ada pengukur kinerja yang tersedia untuk mengukur mana yang lebih baik?
Jawaban:
Gunakan ini
Atau
sizeof()
adalah alias untukcount()
, mereka bekerja sama.Sunting: Menjawab bagian kedua dari pertanyaan: Dua baris kode dalam pertanyaan bukanlah metode alternatif, mereka melakukan fungsi yang berbeda. Yang pertama memeriksa apakah nilai at
$arr['1']
diatur, sedangkan yang kedua mengembalikan jumlah elemen dalam array.sumber
if (sizeof($arr))
, yang diterjemahkan keif (sizeof($arr) == 1)
- jelas tidak memeriksa apakah array memiliki lebih dari satu elemen. Jawaban ini benar, dan saya tidak melihat alasan untuk memilih, maka saya merasa senang.if(is_array($arr) && count($arr) > 1)
Hanya untuk memastikan bahwa $ arr memang sebuah array.
sizeof
adalah alias daricount
, saya lebih suka menggunakan hitungan karena:sumber
$arr
sebuah string, itu akan kembali1
.sizeof()
adalah alias untukcount()
. Keduanya bekerja dengan non-array juga, tetapi mereka hanya akan mengembalikan nilai lebih dari 1 jika argumennya adalah array atauCountable
objek , jadi Anda cukup aman dengan ini.sumber
Jelas menggunakan
count($arr) > 1
(sizeof
hanya alias untukcount
) adalah solusi terbaik. Bergantung pada struktur array Anda, mungkin ada banyak elemen tetapi tidak ada$array['1']
elemen.sumber
Menggunakan
count()
halaman ini menjelaskannya dengan sangat baik http://phparraylength.com/
sumber
Saya lebih suka
count()
fungsi bukansizeOf()
sebagaisizeOf()
hanya sebuah aliascount()
dan tidak berarti sama dalam banyak bahasa lainnya. Banyak programmer berharapsizeof()
untuk mengembalikan jumlah memori yang dialokasikan.sumber
sizeof
vscount
Untuk memeriksa array kosong () lebih baik daripada sizeof ().
Jika array berisi sejumlah besar data. Ini akan memakan waktu lebih banyak untuk menghitung ukuran array. Tetapi memeriksa kosong selalu mudah.
sumber
isset () hanya memeriksa apakah suatu variabel disetel. Tidak ada hubungannya dengan ukuran atau isi array
sumber
Saya berasumsi $ arr adalah array maka ini adalah apa yang Anda cari
sumber
Metode pertama
if (isset($arr['1']))
tidak akan bekerja pada array asosiatif.Misalnya, kode berikut menampilkan "Tidak, tidak lebih dari satu."
sumber
Saya melakukan pengulangan array dan mendapatkan default yang sesuai di Swift 4/5
sumber