[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Условие для переменной
wild_wild_wild
Здравствуйте.

имеется переменная
$row2["idtov"]


может принимать значения:
1) либо целое число - например: 103000035
2) либо через знак минус - например: 103000035-151

сделал инструкции для каждого вида переменной:


1)
$row22['idtov'] = $row2["idtov"];

2)
$string = $row2["idtov"];
$row22['idtov'] = substr($string,0,strpos($string, '-'));



по отдельности 1 и 2 вариант работают, то есть либо выводится целое число, а со знаком '-' не выводится,
либо отсекаются ненужные символы, а целое число не выводится (2 вариант)
(но мне необходимо, чтобы были только целые числа, как 103000035 , а все знаки и символы после '-' отсекались)
то есть, если в переменной есть знак '-' то работал бы второй вариант, в других случаях - первый
Надеюсь всё правильно объяснил, я в этом деле новичок
chee
$number = array_shift(explode('-', $row2["idtov"]));


поясню почему будет работать:
1 случай. Нету символа по которому будет explode разделять, но explode все равно вернет массив. И в этом массиве будет один элемент, а имеено значение из $row2["idtov"]. array_shift возьмет первый элемент.
2 случай. explode, разделит вернет массив из двух элемент, до дефиса и после, с помощью array_shift берется первый элемент из массива.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
wild_wild_wild
chee
Большое спасибо, оказалось все намного проще, чем я представлял (думал через if и else решить вопрос)
walerus
еще проще:
$a = '103000035-151';
echo (int) $a;
Игорь_Vasinsky
для этих целей есть preg_match()

<?php
$str = '1241231-123';

$result = preg_match("#\d+\-\d+#", $str);

var_dump((bool)$result);
?>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
wild_wild_wild
Игорь_Vasinsky
walerus

$row2["idtov"]
- любые 9 и 10 значные числа, а не конкретные
Спасибо за советы, решил так, как советовал chee

участок кода

...
$number = array_shift(explode('-', $row2["idtov"]));

$url_good = "http://Мой сайт/book_form2_".$number.".html";

echo "<tr><td valign=top bgcolor=white align=center>

<a
href=\"javascript:open_window('".$url_good."',700,830);\" class=menu>".$row2['idtov']."</a>";
...
Игорь_Vasinsky
Цитата
\d+\-\d+

числа дефис числа

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
walerus
Игорь_Vasinsky эх, ТС даже не попробовал наши варианты unsure.gif ... а я так старался...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.