За последние 24 часа нас посетили 54355 программистов и 1776 роботов. Сейчас ищут 1026 программистов ...

in_array двумерного массива

Тема в разделе "Прочие вопросы по PHP", создана пользователем kotik2, 29 окт 2015.

  1. kotik2

    kotik2 Новичок

    С нами с:
    10 окт 2015
    Сообщения:
    39
    Симпатии:
    0
    Добрый день, у меня массив двумерный.
    я создаю пары значении, и записываю туда:
    Код (PHP):
    1. if ((!in_array($Row['art'],$art[0],true))&&(!in_array($Row['br'],$art[1],true))
    2. {
    3. $art[0][]=$Row['art'];
    4. $art[1][]=$Row['br'];
    5. } 
    кажется неправильно реализовано
    Код (PHP):
    1. if ((!in_array($Row['art'],$art[0],true))&&(!in_array($Row['br'],$art[1],true)) 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Двумерным является массив $art. В in_array() ты передаешь $art[0], это простой массив.
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    PHP умеет сравнивать массивы целиком.
    Следствие: хотя in_array() работает с одним измерением, вы можете заставить его искать целое измерение, под-массив.

    Код (PHP):
    1. <?php
    2.  
    3. $arr = [
    4.   ['a', 'b'],
    5.   ['a', 'c'],
    6.   ['e', 'f'],
    7.   ['f', 'a'],
    8. ];
    9.  
    10. // выведет "yes no "
    11. echo in_array(['e', 'f'], $arr) ? 'yes ' : 'no ';
    12. echo in_array(['f', 'f'], $arr) ? 'yes ' : 'no ';
    13.  
    Добавлено спустя 3 минуты 8 секунд:
    P.S. Только у меня структура другая чем у вас. Вместо
    Код (PHP):
    1. $art[0][]=$Row['art'];
    2. $art[1][]=$Row['br'];
    используется как бы
    Код (PHP):
    1. $art[] = [0=>$Row['art'], 1=>$Row['br']];