За последние 24 часа нас посетили 17660 программистов и 1714 роботов. Сейчас ищут 1730 программистов ...

повторяются значения в select

Тема в разделе "Сделайте за меня", создана пользователем hust0, 24 апр 2016.

  1. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Здравствуйте, у меня проблема такая, что в .csv файле имеются несколько строчек с одинаковым кодом и одинаковым размером.

    Допустим:

    ID Размер
    100 5
    200 6
    100 5
    500 10
    100 7

    Скрипт для ID выводит размер в <select>, Если id = 100 то он выводит 5, 5, 7. Как можно сделать чтобы размер не повторялся? чтобы выводило 5, 7 ?

    PHP:
    1. print '<select class="classic" style="width:160px;" name="city" id="myselect">';
    2. for($i=0; $datssa=fgetcsv($f,1000,";"); $i++) {
    3. $ifIDa = $datssa[1];
    4.   if (preg_match("/".preg_quote($ido)."/i",$ifIDa)) {
    5.  
    6. print '<option value='.$datssa[2].' tirzniecibascena='.$datssa[14].' cena='.$datssa[12].'>'.$datssa[3].'</option>';
    7.  
    8.  
    9. }
    10. }
    11. print '</select>';
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    PHP:
    1. array_unique($array); // удаляет все повторяющиеся значения массива
    --- Добавлено ---
    т. е. возвращает массив без повторяющихся значений...
     
  3. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    куда его там вставить надо?)
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
  5. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    не могу понять как...
     
  6. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    После получения массива данных из файла CSV, их, данные, надо прогнать через функцию array_unique($array). В вашем примере с массивом лучше работать через foreach:
    PHP:
    1. print '<select class="classic" style="width:160px;" name="city" id="myselect">';
    2. $data = array_unique(fgetcsv($f,1000,";"));
    3. $i=0;
    4. foreach ($data as $row) {
    5.    $ifIDa = $row[1];
    6.    if (preg_match("/".preg_quote($ido)."/i",$ifIDa)) {
    7.      print '<option value=' . $row[2] . ' tirzniecibascena=' . $row[14] . ' cena=' . $row[12] . '>' . $row[3] . '</option>';
    8.      $i++;
    9.    }
    10. }
    11. print '</select>';
     
    #6 alexforce2, 24 апр 2016
    Последнее редактирование: 24 апр 2016
  7. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    скорее всего я ошибаюсь... воздержусь от комментариев...
     
  8. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    странно теперь не выводит ничего...
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    ошибка есть?
     
  10. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Просто пусто в <select>
     
  11. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    А в $data есть что-нибудь?
    Проверьте через var_dump($data);
     
  12. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Да, есть
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Переместил тему в более подходящий раздел.
     
  14. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    тем более var_dump($data); выводит только одно значение которое запрошено через GET (код)
     
  15. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Ох, блин, извиняюсь за свой код выше, я не учёл,что функция fgetcsv() читает файл построчно, поэтому мой код не будет работать.
     
  16. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Как тогда быть? :/
     
  17. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Вам придётся писать свою функцию.
     
  18. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Этого я и боялся...
     
  19. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Можете скинуть ссылку на файл?
     
  20. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    всмысле на .csv файл?
     
  21. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
  22. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    #22 hust0, 24 апр 2016
    Последнее редактирование модератором: 24 апр 2016
  23. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    PHP:
    1. print '<select class="classic" style="width:160px;" name="city" id="myselect">';
    2. $data = [];
    3. while ($dataTemp = (fgetcsv($f,1000,";"))){
    4.     $data[] = $dataTemp;
    5. }
    6. $dataOut = array_unique($data);
    7. $i=0;
    8. foreach ($dataOut as $row) {
    9.    $ifIDa = $row[1];
    10.    if (preg_match("/".preg_quote($ido)."/i",$ifIDa)) {
    11.      print '<option value=' . $row[2] . ' tirzniecibascena=' . $row[14] . ' cena=' . $row[12] . '>' . $row[3] . '</option>';
    12.      $i++;
    13.    }
    14. }
    15. print '</select>';
    Дружище, у тебя прям много тем, это хорошо, что ты чем-то занимаешься. Но видно прям, что у тебя задача не научиться, а использовать нас нахаляву для каких-то своих нужд. Давай что-то с этим делать
     
  24. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Извиняюсь за массовые темы по этому поводу, я учусь там где меня исправляют.... Код не рабочий :/ где то ошибка.
     
  25. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Че пишет то? Ошибку выдает? Я вообще с айпада пишу :D поэтому все возможно