Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вывод строки где больше символов, Работа со строками и символами
Luchfan12  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42124
На форуме: 1 год, 13 дней
Карма:





<form>
<
input type="text" name="string_one"/>
<
input type="text" name="string_two"/>
<
input type="text" name="symbol"/>
<
input type="submit" value="Отправить"/>
</
form>

<?php

Function
myReplace ($string_one,$string_two,$symbol)
{
$count_one = 0;
$count_two = 0;
for ($i=0; $i<strlen($string_one); $i++)
{
if ($string_one[$i] == "$string_two")
$count_one++;
if ($string_one[$i] == "$symbol")
$count_two++;
}
if ($count_one>$count_two)
{
echo "First string";
}
if ($count_one<$count_two)
{
echo "Second string";
}

}

$string_one = $_REQUEST['string_one'];
$string_two = $_REQUEST['string_two'];
$symbol = $_REQUEST['symbol'];
myReplace ($string_one,$string_two,$symbol);
?>

Есть форма, где содержатся 3 поля, 2 из них для ввода строк, а одно для ввода исследуемого символа. Ввожу две строки и символ и извлекаю их. Программа должна выводить в какой из 2 двух строк больше исследуемых символов, а она ничего не выводит. Где нужно исправить?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




Luchfan12, надо подумать. Надо подумать с чего начать вам объяснять, куда этот код надо выкинуть.
Решение в "лоб", чаще всего не самое лучшее. У вас задача сравнить две строки, а как бы вы поступили если бы строк была одна и более, и их количество за ранее не известно?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Luchfan12  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42124
На форуме: 1 год, 13 дней
Карма:




Цитата (Valick @ 19.11.2015 - 12:14)
Luchfan12, надо подумать. Надо подумать с чего начать вам объяснять, куда этот код надо выкинуть.
Решение в "лоб", чаще всего не самое лучшее. У вас задача сравнить две строки, а как бы вы поступили если бы строк была одна и более, и их количество за ранее не известно?

У меня в задаче предполагается, что нужно сравнить именно 2 строки, не больше не меньше.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25980
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 18 дней
Карма: 725

Не курю:
1 год, 2 месяца, 4 дня


$data = array_slice($_POST, 0, 2);

foreach($data as $k=>$v){
preg_match_all("#(".$_POST['symbol'].")#u", $v, $match);
$strlen[$k] = isset($match) ? $match[0] : '';
}

$keys = array_keys($strlen);

echo sizeof($strlen[$keys[0]]) > sizeof($strlen[$keys[1]])
?
$keys[0] ." : ". sizeof($strlen[$keys[0]])
:
$keys[1] ." : ". sizeof($strlen[$keys[1]]);



$_POST = array(
'string_one'=>'asd dfsasdas vbcbcvb',
'string_two'=>'cvb jhghjg',
'symbol'=>'b'
);


string_one : 3


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




Цитата (Luchfan12 @ 19.11.2015 - 11:20)
У меня в задаче предполагается, что нужно сравнить именно 2 строки, не больше не меньше.

Я просто предложил вам взглянуть на задачу под другим углом. Но боюсь кроме анекдота, я вам ничем не смогу помочь. Если только на платной основе.

- Мальчик, а мальчик. Как тебя зовут?
- ЛЁХА!
- А кем ты хочешь стать?
- КАФМАНАФТАМ!!!


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
brevis  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 264
Пользователь №: 39616
На форуме: 2 года, 6 месяцев, 19 дней
Карма: 31






--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Luchfan12  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42124
На форуме: 1 год, 13 дней
Карма:




Цитата (brevis @ 19.11.2015 - 12:49)
Оратите внимание: mb_substr_count — Возвращает количество вхождений подстроки.

А можно использовать просто substr_count?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




Цитата (Luchfan12 @ 19.11.2015 - 15:15)
А можно использовать просто substr_count?

зависит от кодировки


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Luchfan12  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42124
На форуме: 1 год, 13 дней
Карма:




Цитата (Valick @ 19.11.2015 - 16:28)
Цитата (Luchfan12 @ 19.11.2015 - 15:15)
А можно использовать просто substr_count?

зависит от кодировки

Понял)
Спасибо за помощь)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5489
Пользователь №: 35718
На форуме: 4 года, 13 дней
Карма: 167




<?php
// Раскомментировать при отладке кода
//header('Content-Type: text/html; charset=utf-8');
//echo '<pre>';
//print_r($_POST);
//echo '</pre>';

// Количество полей формы подлежащих сравнению

$nfield = 2;

if(isset($_POST['go'])){
$string = $_POST['string'];
$serch = $_POST['serch'];
foreach($string as $key => $value){
$compare[$key] = mb_substr_count($value,$serch);
}
$message = 'Строка '.(array_search(max($compare),$compare)+1).' содержит наибольшее число вхождений';
}
?>
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8" />
<
title>Поиск наибольшего числа вхождений</title>
</
head>
<
body>
<
h2>Введите строки для сравнения</h2>
<
form action="" method="POST">
<?php
for($i=0; $i<$nfield; $i++){
echo '<p><input name="string[]" value="';
echo ($string)?$string[$i]:'';
echo '" \></p>'."\n";
}
?>
<p><input name="serch" value="<?php echo ($serch)?$serch:'';?>" \></p>
<
p><input type="submit" name="go" value="Отправить"/></p>
</
form>
<?php echo ($message)?$message:'';?>
</body>
</
html>


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 1 месяц, 29 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 8 дней


Кодировку для mb_ луче задавать явно для избежания проблем.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса