я получил строку, как это:PHP: Граф различных чисел в строке
, 10,10,10,10,10,10,10,11
Как я могу рассчитывать, как там много разных чисел?
я получил строку, как это:PHP: Граф различных чисел в строке
, 10,10,10,10,10,10,10,11
Как я могу рассчитывать, как там много разных чисел?
//remove the starting from the given string,
$input = substr($input, strpos(',', $input) + 1);
//split the string on ',' and put it in an array
$numbers = explode(',', $input);
//an array to put our unique numbers in
$counter = array();
//for each number
foreach($numbers as $number) {
//check if it is not in the unique 'counter' array
if(!in_array($number, $counter)) {
//remember this unique number
$counter[] = $number;
}
}
//count the unique number array
$different = count($counter);
//give some output
echo "There are " . $different . " unique numbers in the given string";
входная переменная должна быть ваш текст, потому что текст начинается с «» мы раздеть его из нашей входной строки
Спасибо. Это сработало. btw: Не подстрока. Это «substr». Но с этим это сработало. – DragonStyle
Я отредактирую его в своем посте, без проблем –
Святое чрезмерное применение, Бэтмен! – j4k3
попробовать что-то вроде этого:
$string = '10, 10, 11, 11, 11, 12';
$numbers = explode(',',$string);
$counter = array();
foreach($numbers as $num) {
$num = trim($num);
if (!empty($num)) {
if (!isset($counter[$num])) {
$counter[$num]=1;
} else {
$counter[$num]++;
}
}
}
print_r($counter);
Надеется, что это поможет!
Вы можете использовать функцию взрываются для изготовления string
Массив затем использовать array_unique
функция для получения уникального номера. Из этого массива массивов вы можете легко подсчитать, сколько из вашего числа уникально.
$str = ",10,10,10,10,10,10,10,11";
$arr = explode(",", trim($str, ","));
$arr = array_unique($arr);
print_r($arr);
Результат:
Array
(
[0] => 10
[7] => 11
)
так что теперь пришло время подсчитать, просто использовать count
.
echo count($arr);// 2
explode
string
на ,
array_filter
без обратного вызова, чтобы удалить пустые матчи (первой запятой)array_unique
для удаления DUP значенияcount
вернуть размер array_unique
$string = ",10,10,10,10,10,10,10,11";
echo count(array_unique(array_filter(explode(",", $string))));
Ухаживать за DV? –
Он этого не делает. Я отклонил этот вопрос о задании домашних заданий и поддержал ваш ответ. Самый простой и эффективный здесь. - Я лично использовал array_map (intval, ...) вместо array_filter (...). – j4k3
Пожалуйста, прочтите [Какие темы я могу спросить о] (http://stackoverflow.com/help/on-topic) и [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) И [идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO is ** не является бесплатным кодированием или преобразование кода или учебник или поиск в библиотеке ** Вы также должны показать, что приложили определенные усилия для решения своей проблемы. Действительно ли строка начинается с запятой. что ты уже испробовал? – RiggsFolly
да это начинается с запятой – DragonStyle