Я хочу использовать 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!';
}
Как я могу заставить его работать с массивами?
Руководство по PHP для strlen()
:
strlen () возвращает NULL при выполнении на массивах, и выдается ошибка уровня E_WARNING.
Вы не можете на самом деле.
Есть ли какая-то причина, почему вы «хотите» это сделать?
Существует совершенно хорошая функция для достижения того, что вы хотите — count()
:
count — считать все элементы в массиве, или что-то в объекте
if (strlen($array1) > strlen($array2))
{
echo 'It works you fool!';
}
Не пытайтесь использовать функции PHP в соответствии с вашими потребностями в сценариях, для которых они не предназначены.
Особенно, когда есть (почти всегда) вполне хорошая функция, которая уже соответствует вашим потребностям.
Будущие изменения могут привести к тому, что ваш «хак» перестанет работать, а использование правильной функции означает, что вы, вероятно, выиграете от PHP, обеспечивающего точность, стабильность, скорость и т. Д. И т. Д.
Взломы часто вызывают головные боли, даже если не сейчас, в будущем.
Чтобы получить длину массива, вы должны использовать count()
,
if (count($array1) > count($array2)) {
echo 'It works you fool!';
}