2015-02-23 3 views
1

Как подсчитать число с PHPPHP: как считать числа?

$mynumbers="0855 468 4864 63848 1486"; //This is my variable, the pattern has to be like this, each number is separated by a space. 
echo "There are 5 numbers in your variable"; 

Она должна возвращать: 5

Как я могу это сделать, я знаю, что есть str_word_count, но он считает только слова не цифры.

+1

Разделите строку на пробелы и подсчитайте количество элементов, которые вы получаете. Если вам нужно игнорировать нечисловые значения (для таких случаев, как 'ignorethis 123 andthis'), вы можете прокручивать каждый элемент в результате и увеличивать счетчик, если они считаются числовыми. – GoBusto

+1

Используйте, например, '$ exploded = explode ('', $ mynumbers); echo 'Есть. .count ($ exploded).' числа в вашей переменной. '; ' – lmarcelocc

+0

Почти все решения являются излишними ... Если вы уверены, что эта строка содержит только числа и пробелы, вы должны подсчитать пробелы и добавить их. Если вы хотите иметь массив в будущем, используйте explode :). –

ответ

3

Это должно работать для вас:

$str = "0855 468 4864 63848 1486"; 
preg_match_all("/\d+/", $str, $matches); 
echo count($matches[0]); 

Выход:

5 
+0

Можете ли вы объяснить, что делает ''/\ d +/"'? – Lin

+2

@Lin Конечно! Это регулярное выражение и '\ d' matches' [0-9] ', квантификатор' + '-> для одного до неограниченного времени (жадный) – Rizier123

+0

lol, и почему голос голосования? – Rizier123

2

Вы можете попробовать explode() функции для него, как, как:

$mynumbers="0855 468 4864 63848 1486"; 
$values = explode(" ", $mynumbers); 
echo count($values); 

Надеется, что это помогает

2

использование explode(), например:

$mynumbers = "0855 468 4864 63848 1486"; 
$exploded = explode(' ', $mynumbers); 
echo 'There are '.count($exploded).' numbers in your variable.'; 
0

Простого разрешение однострочного:

$numCount = count(array_map(function($value){return is_numeric($value);}, explode(' ', $mynumbers))); 

Мы exlplode строки на слова, а затем возвращать только числовые значения из результирующего массива и сосчитать их.

Смежные вопросы