как считываемую строку перевести в числа

Статус
В этой теме нельзя размещать новые ответы.

Int32

Постоялец
Регистрация
28 Мар 2009
Сообщения
65
Реакции
7
Числовые данные из поля считывается в переменную $_GET['massiv'], данные сохраняются в переменную как строка, как реализовать чтобы строку в числа перевести, помню давно делал через перл скрипт, но забыл как. Желательно помочь дописав немного код... Спасибо!
PHP:
<html>
<head>
<title>Главная</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
                                <table border="1" align="center">
                                <tr><td colspan="2">
                                <form action='index.php' method="get">
                                        <table>
                                        <tr><td colspan="2" align="center">Введите последовательность чисел:<br></td></tr>
                                        <tr><td>Последовательность чисел</td><td><input type="text" name="massiv" value="<?php print $_GET['massiv']; ?>"><br></td></tr>
                                <tr><td colspan="2" align="center"><input type="submit" value="Подсчитать"></td></tr>
        </form>
                                </table>
                                </td></tr>
<?php
    $arr = array();
    preg_match_all("/[0]+/", $_GET['massiv'], $arr);
    foreach($arr[0] as &$item) $item = strlen($item);
    print "<tr><td>($arr[0])</td>";
?>
</table>
</body>
</html>
 
прибавьте к переменной 0. php сам преобразует в число переменную если она действительно состоит из цифр.
 
Для приведения типа можно использовать такую строчку

$var1 = (int)$var2

Но Вы уверены, что Вам именно типы привести надо?
 
не работает, ну мне надо позаданию:
Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей.

если числа в самом файле самому прописать то всё норм выводит, если я сам делаю ввод как я писал в файле то выводит вот это:

max(Array)
 
Откройте для себя var_dump() - вместо print при дебаге. И покажите что у вас получилось в $arr:
PHP:
var_dump($arr);
+ хотелось бы увидеть какую последовательность вводят, т.е что у вас в $_GET['massiv'].
 
Числовые данные из поля считывается в переменную $_GET['massiv'], данные сохраняются в переменную как строка, как реализовать чтобы строку в числа перевести, помню давно делал через перл скрипт, но забыл как. Желательно помочь дописав немного код... Спасибо!
PHP:
<html>
<head>
<title>Главная</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
                                <table border="1" align="center">
                                <tr><td colspan="2">
                                <form action='index.php' method="get">
                                        <table>
                                        <tr><td colspan="2" align="center">Введите последовательность чисел:<br></td></tr>
                                        <tr><td>Последовательность чисел</td><td><input type="text" name="massiv" value="<?php print $_GET['massiv']; ?>"><br></td></tr>
                                <tr><td colspan="2" align="center"><input type="submit" value="Подсчитать"></td></tr>
        </form>
                                </table>
                                </td></tr>
<?php
    $arr = array();
    preg_match_all("/[0]+/", $_GET['massiv'], $arr);
    foreach($arr[0] as &$item) $item = strlen($item);
    print "<tr><td>($arr[0])</td>";
?>
</table>
</body>
</html>
По этому тз никогда бы не догадался что нужно:D
Ну, если нужно постичать количество символов, то приводить надо было бы к формату (string) те текстовому. Хотя и так, прег вернёт строку.
В коде всё верно, единственное- $arr[0] ссылается на массив с количеством символов в каждом вхождении. Если нужно что-то вывести то надо писать $arr[0][0] например. Ошибка либо в этом либо в неккоректных данных из $_GET['massiv'].

Максимальное число нулей можно вывести так
PHP:
 $max = max($arr[0]);
    print "<tr><td>($max)</td>";
 
Посмотрите на функцию intval
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху