За последние 24 часа нас посетили 23586 программистов и 1664 робота. Сейчас ищут 849 программистов ...

вопрос по массивам

Тема в разделе "PHP для новичков", создана пользователем etalcom, 28 май 2012.

  1. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Есть задача в одном массиве лежат номера и во втором тоже но нужно вывести одну строчку совпадения
    Код (Text):
    1.  
    2.             $arr1 = array(1,2,3,4,5,1,8,4,56,1);
    3.             $arr11 = array(1,2,3,4,5,1,2,1,3,3,1,8,5,5,5,1,1,1,2,2,2,2,1,5);
    4.             for($i=0; $i<count($arr1); $i++)
    5.             {
    6.                 for ($i2=0; $i2<count($arr11); $i2++)
    7.                 {
    8.                     if($arr1[$i] == $arr11[$i2])
    9.                     {
    10.                         echo $arr11[$i2]."<br>";
    11.                     }
    12.                 }
    13.             }
    результат выдает такой
    1
    1
    1
    1
    1
    1
    1
    1
    2
    2
    2
    2
    2
    2
    3
    3
    3
    4
    5
    5
    5
    5
    5
    1
    1
    1
    1
    1
    1
    1
    1
    8
    4
    1
    1
    1
    1
    1
    1
    1
    1
    А мне нужно такой:
    1 2 3 4 5 8
    Не могу понять как надо организовать такое условие.
    Натолкните пожалуйста на мысль нужную
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Код (Text):
    1.     $arr1 = array(1, 2, 3, 4, 5, 1, 8, 4, 56, 1);
    2.     $arr11 = array(1, 2, 3, 4, 5, 1, 2, 1, 3, 3, 1, 8, 5, 5, 5, 1, 1, 1, 2, 2, 2, 2, 1, 5);
    3.     $result = array();
    4.     foreach ($arr1 as $v) {
    5.         if (in_array($v, $arr11) && !in_array($v, $result)) {
    6.             array_push($result, $v);
    7.         }
    8.     }
    9.     print_r($result);
     
  3. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Спасибо большое)Чего то я туплю)
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Можно по ним аррей уником пройтись перед циклом. Если массивы большие. Авось ускорит.
     
  5. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Счас буду внедрять в свой код!Посмотрим

    Добавлено спустя 29 минут 20 секунд:
    Код (Text):
    1.  
    2.             foreach ($xml->price_item as $item)
    3.             {
    4.                 $arr1 = $item->art;
    5.             }
    Вот такой вопросик еще извиняюсь за занудство и свое плохое знание в php!
    В массив эти значения загнать ведь так:
    foreach ($xml->price_item as $item)
    {
    $arr1 = $item->art;
    $mas = array($arr1);
    }
    Да?

    Добавлено спустя 31 секунду:
    Или же он сделать так одному элементу массива присвоит все значения из xml?
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Для того, чтобы добавить к существующему массиву новый элемент - использую либо функцию array_push, либо квадратные скобки после названия массива:
    Код (PHP):
    1. <?php
    2. // Это добавит к массиву $arr элемент $elem:
    3. $arr[] = $elem;
    4. // И это тоже:
    5. array_push($arr, $elem);
    6. // А это сделает переменную $arr равной значению $elem. Никакого массива тут:
    7. $arr = $elem;
    8. ?>
     
  7. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    Понедельник день тяжелый
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я бы сделал финт ушами
    $arr[$i]=$i;
    Что гарантирует отсутствие повторений.
     
  9. etalcom

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

    С нами с:
    14 мар 2012
    Сообщения:
    86
    Симпатии:
    0
    Адрес:
    Вологда
    А все спасибо большое!
    Я сам разобрался!