Использование strlen () с массивами вместо строк

Я хочу использовать strlen() сравнить длину двух массивов. Если длина одного массива больше, чем другого, сделайте что-нибудь.

К сожалению, я заметил, что strlen() работает только со строками? Как я могу заставить его работать с массивами?

Мой код:

    $array1 = array(
'Hello World',
'Hello World',
'Hello World',
'Hello World',
'Hello World'
);

$array2 = array(
'Hello World',
'Hello World'
);if (strlen($array1) > strlen($array2)) {

echo 'It works you fool!';

}

-1

Решение

Как я могу заставить его работать с массивами?

Руководство по PHP для strlen():

strlen () возвращает NULL при выполнении на массивах, и выдается ошибка уровня E_WARNING.

Вы не можете на самом деле.

Есть ли какая-то причина, почему вы «хотите» это сделать?
Существует совершенно хорошая функция для достижения того, что вы хотите — count():

count — считать все элементы в массиве, или что-то в объекте

if (strlen($array1) > strlen($array2))
{
echo 'It works you fool!';
}

Не пытайтесь использовать функции PHP в соответствии с вашими потребностями в сценариях, для которых они не предназначены.
Особенно, когда есть (почти всегда) вполне хорошая функция, которая уже соответствует вашим потребностям.

Будущие изменения могут привести к тому, что ваш «хак» перестанет работать, а использование правильной функции означает, что вы, вероятно, выиграете от PHP, обеспечивающего точность, стабильность, скорость и т. Д. И т. Д.

Взломы часто вызывают головные боли, даже если не сейчас, в будущем.

1

Другие решения

Чтобы получить длину массива, вы должны использовать count(),

if (count($array1) > count($array2)) {
echo 'It works you fool!';
}
3

По вопросам рекламы [email protected]