$myStr = "0,1,1,1,0,1,1,1,0";
echo substr_count( $myStr, "0,1,1,1,0" ); // 1
Как видно результат 1, а мне нужно что бы он был 2, так как такая строка встречается там два раза. Как быть в этом случае?
Спустя 6 минут, 23 секунды (26.07.2012 - 18:03) neadekvat написал(а):
Ты в документацию загляни. Все правильно работает.
Спустя 2 минуты, 45 секунд (26.07.2012 - 18:06) p.pavluxa написал(а):
Я понимаю что он работает правильно, но не так как хочется мне ) Может есть альтернативы?
Спустя 49 секунд (26.07.2012 - 18:07) dadli написал(а):
p.pavluxa
$myStr = "0,1,1,1,0,0,1,1,1,0";
в етом случае будит 2
$myStr = "0,1,1,1,0,0,1,1,1,0";
в етом случае будит 2
Спустя 1 минута, 9 секунд (26.07.2012 - 18:08) p.pavluxa написал(а):
То есть предлагаете заменить в строке все нули на два нуля?
Спустя 27 секунд (26.07.2012 - 18:08) Winston написал(а):
Цитата (p.pavluxa @ 26.07.2012 - 17:57) |
так как такая строка встречается там два раза |
Неужели?
Спустя 42 секунды (26.07.2012 - 18:09) neadekvat написал(а):
Мало ли что тебе хочется.
А max() почему-то ищет максимум, когда я хочу минимум. Что за фигня?
Я лично не врубаюсь, что тебе нужно.
А max() почему-то ищет максимум, когда я хочу минимум. Что за фигня?
Я лично не врубаюсь, что тебе нужно.
Спустя 1 минута, 17 секунд (26.07.2012 - 18:10) p.pavluxa написал(а):
Та я Вам говорю ребята, просто мне нужно посчитать количество комбинаций 0,1,1,1,0 которое встречается в строке.
Спустя 1 минута, 42 секунды (26.07.2012 - 18:12) Winston написал(а):
Цитата (p.pavluxa @ 26.07.2012 - 18:10) |
Та я Вам говорю ребята, просто мне нужно посчитать количество комбинаций 0,1,1,1,0 которое встречается в строке. |
запусти цикл, и на каждой итерации прибавляй +1, для параметра offset в substr_count
Спустя 2 минуты, 28 секунд (26.07.2012 - 18:14) neadekvat написал(а):
Цитата (p.pavluxa @ 26.07.2012 - 19:10) |
Та я Вам говорю ребята, просто мне нужно посчитать количество комбинаций 0,1,1,1,0 которое встречается в строке. |
Так возьми и вручную посчитай. Она встречается ровно один раз.
Спустя 1 минута, 57 секунд (26.07.2012 - 18:16) p.pavluxa написал(а):
$myStr = "0,1,1,1,0,1,1,1,0";
первый раз начинается на индексе 0 и заканчивается на 4
а второй раз начинается на индексе 4 и заканчивается на 8
PS: всем спасибо за внимание. Проблема решена функцией str_replace( '0', '0,0', $myStr ); после неё считается как нада )
первый раз начинается на индексе 0 и заканчивается на 4
а второй раз начинается на индексе 4 и заканчивается на 8
PS: всем спасибо за внимание. Проблема решена функцией str_replace( '0', '0,0', $myStr ); после неё считается как нада )
Спустя 2 минуты, 41 секунда (26.07.2012 - 18:19) neadekvat написал(а):
Цитата (p.pavluxa @ 26.07.2012 - 19:16) |
первый раз начинается на индексе 0 и заканчивается на 4 а второй раз начинается на индексе 4 и заканчивается на 8 |
Ответ неверный.
Уже подсчитанные символы заново никто подсчитывать не будет.
Цитата (p.pavluxa @ 26.07.2012 - 19:16) |
PS: всем спасибо за внимание. Проблема решена функцией str_replace( '0', '0,0', $myStr ); после неё считается как нада ) |
Что за бред? Посмотри, какая у тебя строка на выходе получается.
Спустя 2 минуты, 59 секунд (26.07.2012 - 18:22) p.pavluxa написал(а):
0,0,1,1,1,0,0,1,1,1,0,0
Моя основная задача не сохранить структуру строки, а правильно посчитать скоко в ней трёхпалубников. Поэтому мой мега самый суперский метод крут )
Моя основная задача не сохранить структуру строки, а правильно посчитать скоко в ней трёхпалубников. Поэтому мой мега самый суперский метод крут )
Спустя 2 минуты, 4 секунды (26.07.2012 - 18:24) dadli написал(а):
p.pavluxa
мне кожется ви ето хотите, может есть более оптималние решеня
мне кожется ви ето хотите, может есть более оптималние решеня
$myStr = "0,1,1,1,0,1,1,1,0";
$str = "0,1,1,1,0";
$count = 0;
for ($i = 0; $i <= strlen($myStr) - strlen($str); $i=$i+1) {
if ( substr($myStr,$i,strlen($str)) == $str) {
$count = $count + 1;
}
}
echo $count;
Спустя 1 минута, 12 секунд (26.07.2012 - 18:25) p.pavluxa написал(а):
Да!!! Это именно то что мне нужно! Вы Сен-сей программирования!
А это будет работать даже быстрей чем я предложил?
А это будет работать даже быстрей чем я предложил?
Спустя 4 минуты, 3 секунды (26.07.2012 - 18:29) neadekvat написал(а):
Вот это:
0,1,1,1,0,1,1,1,0
И вот это:
0,0,1,1,1,0,0,1,1,1,0,0
Совершенно разные строки, не находишь?
Откуда столько нулей взялось? С какой радости? Твой код подсчета сработает только на ограниченном количестве комбинаций.
Контрпример.
1,0,0,1,1,0,0,1,1
Выводит 0, а должны бы 2, нэ?
0,1,1,1,0,1,1,1,0
И вот это:
0,0,1,1,1,0,0,1,1,1,0,0
Совершенно разные строки, не находишь?
Откуда столько нулей взялось? С какой радости? Твой код подсчета сработает только на ограниченном количестве комбинаций.
Контрпример.
1,0,0,1,1,0,0,1,1
Выводит 0, а должны бы 2, нэ?
Спустя 4 минуты, 19 секунд (26.07.2012 - 18:34) p.pavluxa написал(а):
Ты меня запутал.
Смотри, вы взяли с нашего игрового поля первую строчку. В ней кораблики стоят вот так:
0,1,1,0,1,1,1,0,1,0
Мне нужно посчитать скоко тут однопалубных двухпалубных и трёх палубных.
Я возьму все нули заменю на '0,0' в результате получу строку :
0,0,1,1,0,0,1,1,1,0,0,1,0,0
Теперь я хочу узнать скоко тут однопалубных, беру пишу :
substr_count( строка, '0,1,0' );
Двухвалубных substr_count( строка, '0,1,1,0' );
и т.д. Всё работает правильно же
Смотри, вы взяли с нашего игрового поля первую строчку. В ней кораблики стоят вот так:
0,1,1,0,1,1,1,0,1,0
Мне нужно посчитать скоко тут однопалубных двухпалубных и трёх палубных.
Я возьму все нули заменю на '0,0' в результате получу строку :
0,0,1,1,0,0,1,1,1,0,0,1,0,0
Теперь я хочу узнать скоко тут однопалубных, беру пишу :
substr_count( строка, '0,1,0' );
Двухвалубных substr_count( строка, '0,1,1,0' );
и т.д. Всё работает правильно же
Спустя 4 часа, 22 минуты, 47 секунд (26.07.2012 - 22:56) inpost написал(а):
регуляркой через ++, не помню точного названия. И отменяешь жадный поиск.
Спустя 1 час, 5 минут, 5 секунд (27.07.2012 - 00:01) Invis1ble написал(а):
$myStr = "0,1,1,1,0,1,1,1,0";
preg_match_all('#(?=0,1,1,1,0)#', $myStr, $matches);
echo count($matches[0]);
Спустя 38 минут, 19 секунд (27.07.2012 - 00:40) neadekvat написал(а):
А по-моему, это фигня какая-то.
Зачем придумали матрицы? Чтобы в 10-ом формате через запятую числа в ряд записывать?
Зачем придумали матрицы? Чтобы в 10-ом формате через запятую числа в ряд записывать?
Спустя 17 минут, 18 секунд (27.07.2012 - 00:57) Invis1ble написал(а):
Цитата |
А по-моему, это фигня какая-то. Зачем придумали матрицы? Чтобы в 10-ом формате через запятую числа в ряд записывать? |
согласен, костыльно получается как-то )
PS. Оффтоп
Вспомнил, как писал бота под свою же капчу (которая на конкурсе была). Принцип работы - регулярки с нулями и единицами
Звучит смешно, но таким образом удалось добиться ~100% эффективности при максимальной скорости работы скрипта 


Спустя 12 часов, 49 минут, 3 секунды (27.07.2012 - 13:46) p.pavluxa написал(а):
Спасибо, это именно то что я хотел увидеть :-)
Номинация самый щедрый и не ленивый программист достается - Invis1ble !
PS: по поводу бота согласен, я тоже делал бота который гадает капчу, преобразовывал её в матрицу из 0 и 1 и далее матрицу уже расчитывает, работало на ура.
Номинация самый щедрый и не ленивый программист достается - Invis1ble !
PS: по поводу бота согласен, я тоже делал бота который гадает капчу, преобразовывал её в матрицу из 0 и 1 и далее матрицу уже расчитывает, работало на ура.
Спустя 19 часов, 6 минут, 11 секунд (28.07.2012 - 08:52) inpost написал(а):
p.pavluxa
Я тебе тоже дал полный ответ, кроме готового кода. Чтобы его написать необходимо было тебе открыть мануал и почитать то, о чём я говорю
Я тебе тоже дал полный ответ, кроме готового кода. Чтобы его написать необходимо было тебе открыть мануал и почитать то, о чём я говорю
