Спустя 3 минуты, 19 секунд (25.09.2012 - 11:15) Игорь_Vasinsky написал(а):
Спустя 1 минута, 5 секунд (25.09.2012 - 11:16) pak написал(а):
можно пример привести, т е что дано и что должно быть на выходе?))
Спустя 11 минут (25.09.2012 - 11:27) Игорь_Vasinsky написал(а):
Цитата |
выбрать символы которые совпадают, и их количество |
Спустя 8 минут, 14 секунд (25.09.2012 - 11:35) Игорь_Vasinsky написал(а):
Я как бы намекнул - тебе подумать тока над основной задачей - как из получившегося собрать единый массив - и подсчитать кол-во символов
Выход:
<?php
header('Content-Type: text/html;charset=UTF-8');
$a = 'Какой чудесный день!';
$b = 'Такой херовый час...';
$a_array = preg_split("##isuU", $a);
$b_array = preg_split("##isuU", $b);
#echo '<pre>' . print_r($a_array, 1) . '</pre>';
#echo '<pre>' . print_r($b_array, 1) . '</pre>';
$a_array_diff = array_diff($a_array, $b_array);
$b_array_diff = array_diff($b_array, $a_array);
#Сравнение массива $a_array к массиву $b_array вида: буква=>кол-во
echo '<pre>' . print_r(array_count_values($a_array_diff), 1) . '</pre>';
#Сравнение массива $b_array к массиву $a_array вида: буква=>кол-во
echo '<pre>' . print_r(array_count_values($b_array_diff), 1) . '</pre>';
?>
Выход:
Array
(
[К] => 1
[у] => 1
[д] => 2
[н] => 2
[ь] => 1
[!] => 1
)
Array
(
[Т] => 1
[х] => 1
[р] => 1
[в] => 1
[.] => 3
)
Спустя 8 минут, 3 секунды (25.09.2012 - 11:43) zerofx написал(а):
$ str1 = adcb;
$ str2 = aaddccbb;
echo "Количество совпадающих символов в строках:";
на выходе я должен получить количество символов которые совпадают, и их самих
вот я сам думаю что для этого использовать ... массивы - т.е. выполнить функцию преобразования строк в массивы, но что потом делать с ними?? ... и снова тупик ..
дальше хотел использовать цикл for - создать изменении которые бы принимали значение, а точнее считывали каждый символ и сравнивала его и другим ... но сам себя запутал ... и теперь не понимаю что будет правильно использовать в такой ситуации
$ str2 = aaddccbb;
echo "Количество совпадающих символов в строках:";
на выходе я должен получить количество символов которые совпадают, и их самих
вот я сам думаю что для этого использовать ... массивы - т.е. выполнить функцию преобразования строк в массивы, но что потом делать с ними?? ... и снова тупик ..
дальше хотел использовать цикл for - создать изменении которые бы принимали значение, а точнее считывали каждый символ и сравнивала его и другим ... но сам себя запутал ... и теперь не понимаю что будет правильно использовать в такой ситуации
Спустя 1 минута, 22 секунды (25.09.2012 - 11:44) zerofx написал(а):
и вообще что вы порекомендуете когда есть потребность сравнить что-то ну например это строки ... что лучше использовать массивы или циклы?
Спустя 4 минуты, 18 секунд (25.09.2012 - 11:49) Игорь_Vasinsky написал(а):
а.. ну я те разность массивов показал.
идея вроде мной прозрачно обрисована, ты игноришь чтоли?
идея вроде мной прозрачно обрисована, ты игноришь чтоли?
Спустя 2 минуты, 53 секунды (25.09.2012 - 11:52) zerofx написал(а):
не спс... а что означаюєт $a_array = preg_split("##isuU", $a) - можешь объяснить, а именно - "##isuU" ...
Спустя 3 минуты, 23 секунды (25.09.2012 - 11:55) Игорь_Vasinsky написал(а):
)))) ну это паттерн, пустой паттерн - который показал функции как разделить строки - а именно - разобрать по символу.
Спустя 12 минут, 51 секунда (25.09.2012 - 12:08) zerofx написал(а):
а где можно о них почитать?????
а вот код который делает почти то же ...
только он сравнивает данные из одной строки...
а вот код который делает почти то же ...
<?
$data = "Две в и одна с";
$result = count_chars($data, 0);
for ($i=0; $i < count($result); $i++)
{
if ($result[$i] != 0)
echo "\"" , chr($i) , "\" встречается в строке $result[$i] раз(а)".'<br>';
}
?>
только он сравнивает данные из одной строки...
Спустя 1 минута, 36 секунд (25.09.2012 - 12:09) zerofx написал(а):
почему я его вам показал ? - мне нужен примерно, такой же - вывод данных
Спустя 1 минута, 30 секунд (25.09.2012 - 12:11) Игорь_Vasinsky написал(а):
всегда есть несколько решений. остаётся тока выбрать оптимальное
Спустя 11 минут, 37 секунд (25.09.2012 - 12:22) zerofx написал(а):
ок ... но если мне нужно вывести данные не в формате массива? т.е. скажем нужно вывести их в строку, то есть нужно будет использовать foreach, а затем с помощью оператора if вывести все значения??
Спустя 1 минута, 8 секунд (25.09.2012 - 12:24) zerofx написал(а):
а почему твой код выводит только те символы которые являются уникальными?
Спустя 39 секунд (25.09.2012 - 12:24) zerofx написал(а):
мне как раз надо наоборот - показать те символы которые совпадают??
Спустя 3 минуты, 11 секунд (25.09.2012 - 12:27) Игорь_Vasinsky написал(а):
оф. сайт PHP - http://php.net/manual/ru/ref.array.php - очень полезный источник информации.
Спустя 9 минут, 51 секунда (25.09.2012 - 12:37) zerofx написал(а):
ты не обижайся .. пойми ну некого спросить)) поэтому и столько вопросов + постоянно попадаешь в ступор когда не можешь выбрать, или понять что надо делать ..
Спустя 2 минуты, 24 секунды (25.09.2012 - 12:40) Игорь_Vasinsky написал(а):
)) да нет... это привычное дело)
для этого и тут, а ссылки лаю - чтоб ты краем глазами другие возможные функции выдел и развивал в себе знания.
для этого и тут, а ссылки лаю - чтоб ты краем глазами другие возможные функции выдел и развивал в себе знания.
Спустя 2 минуты, 28 секунд (25.09.2012 - 12:42) zerofx написал(а):
просто сразу хочется стать крутым php кодером
Спустя 52 секунды (25.09.2012 - 12:43) Игорь_Vasinsky написал(а):
сразу не выдет наверн)
Спустя 13 минут, 50 секунд (25.09.2012 - 12:57) zerofx написал(а):
то все шутки ... но я медленно но верно иду к той цели)
можно еще поконсультоваты на счет вот чего -
когда закомментировать функцию
echo "<pre>". print_r (array_count_values ($ a_array), 1). '</ pre>';
echo "<pre>". print_r (array_count_values ($ b_array), 1). '</ pre>';
то оно странно строит массив ... заносит все символы, но почему-то 0-й индекс начинается с 2-ки - что в первом случае, что во втором .... что это значит?
для чего он, и откуда берется?
можно еще поконсультоваты на счет вот чего -
когда закомментировать функцию
$ a_array_diff+
$ b_array_diff- и изменить их с -
$ a_array_diff+
$ b_array_diffна
echo "<pre>". print_r (array_count_values ($ a_array), 1). '</ pre>';
echo "<pre>". print_r (array_count_values ($ b_array), 1). '</ pre>';
то оно странно строит массив ... заносит все символы, но почему-то 0-й индекс начинается с 2-ки - что в первом случае, что во втором .... что это значит?
для чего он, и откуда берется?
Спустя 2 минуты, 25 секунд (25.09.2012 - 12:59) Игорь_Vasinsky написал(а):
а что странного?
ты подсчитываешь количест-во вхождений символов в тот или иной массив.
ты подсчитываешь количест-во вхождений символов в тот или иной массив.
Спустя 3 минуты, 26 секунд (25.09.2012 - 13:03) zerofx написал(а):
хорошо я понял, а можно как-то обойтись без нее ... ну чтобы она не подсчитывала число входа символов а массив?
Спустя 3 минуты, 12 секунд (25.09.2012 - 13:06) Игорь_Vasinsky написал(а):
можно изобретать велосипед - но зачем?
задача проста как 2х2
1. Получить массивы из строк
2. сравнить эти массивы
3. удалить всё из этих массив - что не совпадает
4. остатки - склеить
5. взвесить
задача проста как 2х2
1. Получить массивы из строк
2. сравнить эти массивы
3. удалить всё из этих массив - что не совпадает
4. остатки - склеить
5. взвесить
Спустя 2 минуты, 19 секунд (25.09.2012 - 13:08) zerofx написал(а):
Гениально! вот чего мне не хватало плана боевых действий
Спустя 5 минут, 29 секунд (25.09.2012 - 13:14) Игорь_Vasinsky написал(а):
с этого и нужно начинать всегда))
Спустя 39 минут, 14 секунд (25.09.2012 - 13:53) zerofx написал(а):
Для этого надо иметь хоть какой-то опыт)) даже для того что бы составить план работы программы))) + фунций там несколько десятков .. да что там)))