PHP массив: посчитать или размер?



чтобы найти количество элементов в PHP $array, Что быстрее/лучше/сильнее?



count($array) или sizeof($array) ?



Edit



благодаря Энди Лестеру, я уточнил свой вопрос, чтобы иметь в виду с многоязычной точки зрения. Руководство комментаторы говорят




" [sizeof] не означает то же самое в
многие другие языки основаны на C"




- Это правда?

317   7  
PHP

7 ответов:

Я хотел бы использовать count() если они такие же, как и в моем опыте, это более распространено, и поэтому заставит меньше разработчиков читать ваш код, чтобы сказать"sizeof() что это?- и необходимость сверяться с документацией.

Я думаю, что это означает sizeof() не работает так, как в C (вычисление размера типа данных). Вероятно, это было сделано явно, потому что PHP написан на C и предоставляет множество идентичных именованных оболочек для функций C (strlen(),printf(), и т. д.)

по данным phpbench:

стоит ли пытаться вычислить длину цикла заранее?

//pre-calculate the size of array
$size = count($x); //or $size = sizeOf($x);

for ($i=0; $i<$size; $i++) {
    //...
}

//don't pre-calculate
for ($i=0; $i<count($x); $i++) { //or $i<sizeOf($x);
    //...
}

задается цикл с 1000 ключами и 1 байтом значений.

С pre calc-count ()Общее время: 152 МКС

без предварительного calc-count () Общее время: 70401 МКС

С pre calc-sizeof () Общее время: 212 МКС

без предварительного calc-sizeof () Итого время: 50644 МКС

поэтому я лично предпочитаю использовать count () вместо sizeof ()С pre calc.

они идентичны по sizeof()

при отсутствии каких-либо причин беспокоиться о "быстром", всегда оптимизируйте для человека. Что имеет больше смысла для читателя-человека?

согласно сайту,sizeof() - это псевдоним count(), поэтому они должны работать с одним и тем же кодом. Возможно sizeof() имеет немного накладных расходов, потому что он должен решить его count()? Оно должно быть минимальным.

sizeof() - Это просто псевдоним count() как уже упоминалось здесь

http://php.net/manual/en/function.sizeof.php

Я знаю, что это старый, но просто хотел отметить, что Я пробовал это:

<?php
//Creating array with 1 000 000 elements
$a = array();
for ($i = 0; $i < 1000000; ++$i)
{
    $a[] = 100;
}

//Measure
$time = time();
for ($i = 0; $i < 1000000000; ++$i)
{
    $b = count($a);
}
print("1 000 000 000 iteration of count() took ".(time()-$time)." sec\n");

$time = time();
for ($i = 0; $i < 1000000000; ++$i)
{
    $b = sizeof($a);
}
print("1 000 000 000 iteration of sizeof() took ".(time()-$time)." sec\n");
?>

и вот результат:

1 000 000 000 iteration of count() took 414 sec
1 000 000 000 iteration of sizeof() took 1369 sec

Так что просто используйте count().

пожалуйста, используйте функцию count, вот пример как считать массив в элементе

$cars = array("Volvo","BMW","Toyota");
echo count($cars);

The count() функция возвращает количество элементов в массиве.

The sizeof() функция возвращает количество элементов в массиве.

The sizeof() функция является псевдонимом

Comments

    Ничего не найдено.