|
|
|
| господа профессионалы...
есть файл, в нем до черта четыреззначных чисел... "0001...0002....0892".. в порядке возрастания...числа ищутся и заносятся в массив...очень хоцца , чтобы лишние нули в начале числа удалились : 0670 - > 670 - ессно именно в начале, чтобы число не меняло значение..чем????ereg_replace не подойдет...на большее - не хватает фантазии..
заранее спасибо | |
|
|
|
|
|
|
|
для: dr_boris
(06.06.2006 в 01:28)
| | А Вы попробуйте эти значения через функцию intval() прогнать а уже потом в массив. | |
|
|
|
|
|
|
|
для: dr_boris
(06.06.2006 в 01:28)
| | Строго говоря, значение 0670 не есть число, а символьная строка. Даже $num=0670 выдаст ошибку :-). Если переменную, содержащую такое значение умножить на 1 и перезаписать значение, то она станет числовой.
$num='0670';
$num=$num*1;
echo $num;
Результат - 670 | |
|
|
|
|
|
|
|
для: dr_boris
(06.06.2006 в 01:28)
| | >ereg_replace
>не подойдет...
А почему регулярные выражения нельзя использовать? Можно было бы очень элегантно решить проблему
<?php
$str = "0001... 0002... 0892";
$pattern = "|\b[0]+([1-9][\d]*)|is";
echo preg_replace($pattern, "\\1", $str);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(06.06.2006 в 11:26)
| | >А почему регулярные выражения нельзя использовать?
Можно. Да только они здесь не нужны.
>Можно было бы очень элегантно решить проблему
Только проблема была в том чтобы получить массив чисел, а не заменить их написание в строке.
Вариант, который предложил targa, мне представляется оптимальным. | |
|
|
|
|
|
|
|
для: Trianon
(06.06.2006 в 11:35)
| | нет - нет...как раз проблема в том, чтобы подменить в строке "нулевые" числа на нормульные , кот будут нормульно восприниматься функцией поиска...
метод cheopsа работает!!но,если не трудно
$pattern = "|\b[0]+([1-9][\d]*)|is";
preg_replace($pattern, "\\1", $str);
|
что значит "\\1" ?? не могу понять синтаксиса, ибо темен...
хотя бы ссылку на русскоязычный мануал... | |
|
|
|
|
|
|
|
для: dr_boris
(06.06.2006 в 12:47)
| | \\1 - выражение в первой паре круглых скобок. То есть строка без лидирующих нулей.
Между прочим, эта конструкция не будет есть числа вида 0000, а также 1000, 1001 и далее.
Но если Вам удобно, что ж, извините. | |
|
|
|
|
|
|
|
для: Trianon
(06.06.2006 в 12:53)
| | спасибо фсем, кто подключился к проблема...стал на один кб умнее.. | |
|
|
|
|
|
|
|
для: dr_boris
(06.06.2006 в 12:57)
| | ...и на секунду тормознее. | |
|
|
|