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

Тема в разделе "PHP", создана пользователем Int32, 27 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Int32

    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>
     
  2. Dima Kos

    Dima Kos Постоялец

    Регистр.:
    1 апр 2010
    Сообщения:
    54
    Симпатии:
    6
    прибавьте к переменной 0. php сам преобразует в число переменную если она действительно состоит из цифр.
     
  3. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    Для приведения типа можно использовать такую строчку

    $var1 = (int)$var2

    Но Вы уверены, что Вам именно типы привести надо?
     
  4. Int32

    Int32 Постоялец

    Регистр.:
    28 мар 2009
    Сообщения:
    65
    Симпатии:
    7
    не работает, ну мне надо позаданию:
    Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей.

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

    max(Array)
     
  5. Ins1ne

    Ins1ne Постоялец

    Регистр.:
    26 авг 2009
    Сообщения:
    89
    Симпатии:
    25
    Откройте для себя var_dump() - вместо print при дебаге. И покажите что у вас получилось в $arr:
    PHP:
    var_dump($arr);
    + хотелось бы увидеть какую последовательность вводят, т.е что у вас в $_GET['massiv'].
     
  6. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    558
    По этому тз никогда бы не догадался что нужно:D
    Ну, если нужно постичать количество символов, то приводить надо было бы к формату (string) те текстовому. Хотя и так, прег вернёт строку.
    В коде всё верно, единственное- $arr[0] ссылается на массив с количеством символов в каждом вхождении. Если нужно что-то вывести то надо писать $arr[0][0] например. Ошибка либо в этом либо в неккоректных данных из $_GET['massiv'].

    Максимальное число нулей можно вывести так
    PHP:
     $max max($arr[0]);
        print 
    "<tr><td>($max)</td>";
     
  7. Stern87

    Stern87 Создатель

    Регистр.:
    8 дек 2007
    Сообщения:
    15
    Симпатии:
    1
    Посмотрите на функцию intval
     
Статус темы:
Закрыта.