- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
В файле есть строки. В каждой строке 5 значений. Есть строки у которых первые значения одинаковы. Как можно вывести строки, исключив одинаковые?
1. Собираем строки в массив
2. Запускаем цикл по массиву, берем текущее значение и проходимся по массиву выявляя "одинаковые"
3. ???
4. ПРОФИТ!
А какой будет код для пункта 2? Как сравнить части строк?
Разбить строку на части и сравните эти части между собой http://www.google.ru/search?client=opera&rls=ru&q=%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D1%82%D1%8C+%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83+php&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
было бы неплохо увидеть строки с файла (несколько)
и что вы хотите получить.
Как можно вывести строки, исключив одинаковые?
Одинаковые - обе исключаются из вывода или одну показать надо?
Если второе - используйте array_unique
clb, обычно такие вопросы задают с примерами входных данных.
Я бы разбил строки на значения, получив многомерный массив. Многомерный массив можно уникализировать одной из функций, представленных в комментариях тут. Дальше объединяем значения в строки и выводим.
Я бы распарсил бы строку по символу "\n", и запихниул бы в массив вида
arr[0] = "2 2 3 4 1";
arr[..] = "2 6 3 8 1";
arr[n] = "1 8 3 4 2";
Далее распарсил бы по пробелу (ну или какой там разделитель значений), сравнил бы, и в случае true вывел то что надо.
А вообще-то надо видеть задачу.
было бы неплохо увидеть строки с файла (несколько)
и что вы хотите получить.
Файл имеет такие строки:
Товар1;588;4000;452;10
Товар1;5048;4000;452;10
Товар1;665;4000;452;10
Товар1;1204;4000;452;10
Товар2;477;3000;352;5
Товар2;693;3000;352;5
Товар3;2035;2000;152;3
Товар3;535;2000;152;3
Товар3;3985;2000;152;3
...
Нужно вывести так:
Товар1 1024 4000 452 10
Товар2 693 3000 352 5
Товар3 3985 2000 152 3
Товар1;5048;4000;452;10
Товар1;665;4000;452;10
Товар1;1204;4000;452;10
Любое рандомное значение из группы?
Или первое, или последнее? Или наименьшее/наибольшее?
Четче ставьте задачу.
Нужно вывести так:
Товар1 1024 4000 452 10
Товар2 693 3000 352 5
Товар3 3985 2000 152 3
csv.csv это твой файл, можно как то так
$handle = fopen("csv.csv", "r");
результатэто первые уникальные строки из файла, если надо какой то порядок, то поиграть с сортировкойwhile (($a1 = fgetcsv($handle,1000,";")) !== false) {
$i = $a1[1];
unset($a1[1]);
$a2[$i] = implode(";",$a1);
}
$a3 = array_unique($a2);
foreach($a3 as $k=>$v) {
$a4 = str_getcsv($v,';');
echo $a4[0] ." ". $k ." ". $a4[1] ." ". $a4[2] ." ". $a4[3] ."\n";
}