配列に複数の要素があるかどうかを確認する必要があります。私はそれをこのようにしようとしています:
if (isset($arr['1']))
他の伝統的な方法は
if (sizeof($arr)>1)
2つのうちどちらが良いですか?そのような状況では、2つの代替方法をどのように判断する必要がありますか?どちらが良いかを測定するために利用できるパフォーマンスチェックメーターはありますか?
これを使って
if (sizeof($arr) > 1) {
....
}
または
if (count($arr) > 1) {
....
}
sizeof()
のエイリアスでcount()
あり、同じように機能します。
編集:
質問の2番目の部分に答える:質問の2行のコードは代替方法ではなく、異なる機能を実行します。1 つ目は at の値が設定されているかどうかをチェック$arr['1']
し、2 つ目は配列内の要素数を返します。
if(is_array($arr) && count($arr) > 1)
$arrが実際に配列であることを確認するためだけに。
sizeof
のエイリアスです。次のcount
理由でcountを使用することをお勧めします。
if (count($arr) >= 2)
{
// array has at least 2 elements
}
sizeof()
のエイリアスですcount()
。どちらも非配列でも機能しますが、引数が array またはobjectの場合にのみ 1 より大きい値を返すCountable
ため、これでかなり安全です。
明らかにcount($arr) > 1
(sizeof
は の単なるエイリアスですcount
) を使用することが最善の解決策です。配列の構造によっては、大量の要素があっても要素がない場合があり$array['1']
ます。
配列のチェックには、sizeof() より empty() の方が優れています。
配列に大量のデータが含まれている場合。配列のサイズをカウントするには、さらに時間がかかります。しかし、空のチェックはいつでも簡単です。
//for empty
if(!empty($array))
echo 'Data exist';
else
echo 'No data';
//for sizeof
if(sizeof($array)>1)
echo 'Data exist';
else
echo 'No data';
isset()は、変数が設定されているかどうかのみをチェックします。サイズや配列に含まれる内容とは何の関係もありません。
$arr が配列であると仮定すると、これがあなたが探しているものです
if ( sizeof($arr) > 1) ...
最初の方法
if (isset($arr['1']))
は、連想配列では機能しません。
たとえば、次のコードは「いいえ、複数ではありません」と表示します。
$arr = array(
'a' => 'apple',
'b' => 'banana',
);
if (isset($arr['1'])) {
echo "Yup, more than one.";
} else {
echo "Nope, not more than one.";
}