[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с условием.
valik3210
Имеется $a = 123 и $b = xxx. Как сделать так, чтоб при вводе в $b тех же цифр (123) но в любом порядке (321,132,312) $a равнялась $b?



Спустя 14 минут, 39 секунд (11.04.2010 - 13:00) FatCat написал(а):
1. Разрезать посимвольно на массив цифр.
2. Отсортировать.
3. Имплодить в строку.
4. Сравнить.

Спустя 44 минуты, 55 секунд (11.04.2010 - 13:45) valik3210 написал(а):
Цитата (FatCat @ 11.04.2010 - 10:00)
1. Разрезать посимвольно на массив цифр.
2. Отсортировать.
3. Имплодить в строку.
4. Сравнить.

Из вышеперечисленного аналогичные вопросы.

P.S. Я не ГУРУ я только учусь.

Спустя 2 часа, 14 минут, 29 секунд (11.04.2010 - 15:59) Mirexzpalich написал(а):
Ну в строку преврашать не обязательно.


$b=312;
$bb=$b;
while($bb>0) {
$array[]=$bb%10;
$bb=(integer)($bb/10);
};
sort($array);
$bb=0;
for($i=0;$i<=COUNT($array[])-2;$i++)
$bb=$bb*10+$array[$i];

$result=mysqli_Query('SELECT a FROM table');
$row=mysqli_feach_array($result);
$ainbase=atoi($row['a']);
$a=$ainbase;
while($a>0) {
$array2[]=$a%10;
$a=(integer)($a/10);
};
sort($array2);
$a=0;
for($i=0;$i<=COUNT($array2[])-2;$i++)
$a=$a*10+$array2[$i];
if ($a==$bb) mysqli_Query('UPDATE SET a='.$b.' FROM table WHERE a='.$aintable);


Спустя 3 часа, 43 минуты, 29 секунд (11.04.2010 - 19:43) sergeiss написал(а):
Цитата (FatCat @ 11.04.2010 - 14:00)
1. Разрезать посимвольно на массив цифр.
2. Отсортировать.
3. Имплодить в строку.
4. Сравнить.

А зачем пп. 2 и 3? Разрезаем на массивы цифр обе строки (функция str_split), и сравниваем массивы функцией array_diff().

На выходе (реальная обработка в одну строку):
$a='...';
$b='.....';
$c=count( array_diff( str_split($a), str_split($b) ) );
if( $c == 0 ) echo 'Строки содержат одинаковые символы';


PS. Ну, еще можно и длины строк сравнить smile.gif Иначе могут быть не совсем корректные результаты.

Спустя 11 часов, 59 минут, 17 секунд (12.04.2010 - 07:42) Guest написал(а):
1+2+3 = 3+2+1 = 1+3+2 = 3+1+2 = 6

Спустя 32 минуты, 6 секунд (12.04.2010 - 08:14) sergeiss написал(а):
Цитата (Guest @ 12.04.2010 - 08:42)
1+2+3 = 3+2+1 = 1+3+2 = 3+1+2 = 6

А ежели не 123, а 247? Сумму цифр такую же можно получить будет и от 139. И чего получим? Что эти 2 числа содержат одинаковые числа? wink.gif

Спустя 4 часа, 43 минуты, 22 секунды (12.04.2010 - 12:58) valik3210 написал(а):
А как же тогда "сказать" PHP что $a = "гайка болт"; равняется $b= "болт гайка"; ???

Спустя 26 минут, 24 секунды (12.04.2010 - 13:24) sergeiss написал(а):
Цитата (valik3210 @ 12.04.2010 - 13:58)
А как же тогда "сказать" PHP что $a = "гайка болт"; равняется $b= "болт гайка"; ???

Так я выше писал... Или тебя не устраивает "обработка в одну строку", нужно обязательно длинную функцию? wink.gif
Правда, у меня там посимвольное сравнение, как ты и спрашивал изначально. А вот если сравнивать наличие одинаковых слов (но не посимвольное сравнение), то тогда надо по-другому делать.
Быстрый ответ:

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