Мне просто нужно проверить, есть ли в массиве более одного элемента. Я пытаюсь сделать это так:
if (isset($arr['1']))
другой традиционный способ
if (sizeof($arr)>1)
Какой из двух лучше? В таких ситуациях, как я должен судить между двумя альтернативными методами? Есть ли какой-нибудь измеритель проверки производительности, который можно измерить?
Ответы:
Использовать это
Или
sizeof()
это псевдоним дляcount()
, они работают одинаково.Изменить: Отвечая на вторую часть вопроса: две строки кода в вопросе не являются альтернативными методами, они выполняют разные функции. Первый проверяет, установлено ли значение at
$arr['1']
, а второй возвращает количество элементов в массиве.источник
if (sizeof($arr))
переведен наif (sizeof($arr) == 1)
- ясно, что это не проверяет, есть ли в массиве более одного элемента. Этот ответ является правильным, и я не вижу причин для отрицательного голосования, следовательно, мой голос против.if(is_array($arr) && count($arr) > 1)
Просто чтобы быть уверенным, что $ arr действительно массив.
sizeof
это псевдонимcount
, я предпочитаю использовать count, потому что:источник
$arr
это строка, она вернется1
.sizeof()
это псевдоним дляcount()
. Оба работают и с не-массивами, но они будут возвращать значения больше 1, если аргумент является либо массивом, либоCountable
объектом , так что с этим вы в полной безопасности.источник
Очевидно, что использование
count($arr) > 1
(sizeof
это просто псевдонимcount
) является лучшим решением. В зависимости от структуры вашего массива, может быть множество элементов, но нет$array['1']
элемента.источник
использование
count()
эта страница объясняет это довольно хорошо http://phparraylength.com/
источник
Я предпочитаю
count()
функцию вместоsizeOf()
assizeOf()
только псевдонимcount()
и не означает то же самое во многих других языках. Многие программисты ожидаютsizeof()
возврата объема выделенной памяти.источник
sizeof
vscount
Для проверки массива empty () лучше, чем sizeof ().
Если массив содержит огромное количество данных. Это займет больше времени для подсчета размера массива. Но проверить пустое всегда легко.
источник
isset () только проверяет, установлена ли переменная. Не имеет никакого отношения к размеру или содержанию массива
источник
Я предполагаю, что $ arr является массивом, то это то, что вы ищете
источник
Первый метод
if (isset($arr['1']))
не будет работать с ассоциативным массивом.Например, следующий код отображает «Нет, не более одного».
источник
В Swift 4/5 я делаю циклы и получаю значения по умолчанию в Swift 4/5
источник