За последние 24 часа нас посетили 17807 программистов и 1688 роботов. Сейчас ищут 990 программистов ...

where для массива

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

  1. DobroFenix

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

    С нами с:
    22 май 2010
    Сообщения:
    89
    Симпатии:
    0
    Имею примерно вот такой массив
    Как поставить фильтр, который бы отображал записи, в которых ["type"] равнялось бы только halflife ?
    То есть нужно условие отображения ["type"]=='halflife' применимое для массивов.
    Нужно написать своеобразный фильтр по типу where для mysql
     
  2. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    в чем собственно проблема?
    перебирай ключи, проверяй значения
     
  3. ну и кто здесь говно кодер??!

    вот:
    во первый я исправил твой синтаксис
    Код (Text):
    1.  
    2. <?php
    3. $lol = array(50) {
    4.  [0]=> array(3) (
    5.   ["b"]=> array(7) (
    6.    ["type"]=> string(6) "source",
    7.    ["ip"]=> string(13) "85.113.39.168",
    8.    ["c_port"]=> string(5) "27018",
    9.    ["q_port"]=> string(5) "27018",
    10.    ["s_port"]=> string(1) "0",
    11.    ["status"]=> string(1) "1",
    12.    ["pending"]=> int(0)
    13.   ),
    14.   ["o"]=> array(6) (
    15.    ["request"]=> string(1) "s",
    16.    ["id"]=> string(1) "3",
    17.    ["vote"]=> string(4) "1738",
    18.    ["zone"]=> string(0) "",
    19.    ["comment"]=> string(1) "0",
    20.    ["location"]=> string(0) ""
    21.   ),
    22.   ["s"]=> array(6) (
    23.    ["game"]=> string(7) "cstrike",
    24.    ["name"]=> string(31) "DobroFenix Classic CS Server #2",
    25.    ["map"]=> string(10) "cs_militia",
    26.    ["players"]=> string(1) "7",
    27.    ["playersmax"]=> string(2) "32",
    28.    ["password"]=> string(1) "0"
    29.   )
    30.  )
    31.  [1]=> array(3) (
    32.   ["b"]=> array(7) (
    33.    ["type"]=> string(8) "halflife",
    34.    ["ip"]=> string(13) "85.113.39.168",
    35.    ["c_port"]=> string(5) "27015",
    36.    ["q_port"]=> string(5) "27015",
    37.    ["s_port"]=> string(1) "0",
    38.    ["status"]=> string(1) "1",
    39.    ["pending"]=> int(0)
    40.   ),
    41.   ["o"]=> array(6) (
    42.    ["request"]=> string(1) "s",
    43.    ["id"]=> string(1) "1",
    44.    ["vote"]=> string(4) "1400",
    45.    ["zone"]=> string(1) "0",
    46.    ["comment"]=> string(1) "0",
    47.    ["location"]=> string(0) "",
    48.   ),
    49.    ["s"]=> array(6) (
    50.     ["game"]=> string(7) "cstrike",
    51.     ["name"]=> string(31) "DobroFenix Classic CS Server #1",
    52.     ["map"]=> string(9) "cs_havana",
    53.     ["players"]=> string(1) "7",
    54.     ["playersmax"]=> string(2) "32",
    55.     ["password"]=> string(1) "0"
    56.    )
    57.   )
    58.   [2]=> array(3) (
    59.    ["b"]=> array(7) (
    60.     ["type"]=> string(6) "source",
    61.     ["ip"]=> string(13) "91.218.229.34",
    62.     ["c_port"]=> string(5) "27061",
    63.     ["q_port"]=> string(5) "27061",
    64.     ["s_port"]=> string(1) "0",
    65.     ["status"]=> string(1) "1",
    66.     ["pending"]=> int(0)
    67.    ),
    68.    ["o"]=> array(6) (
    69.     ["request"]=> string(1) "s",
    70.     ["id"]=> string(1) "4",
    71.     ["vote"]=> string(2) "67",
    72.     ["zone"]=> string(1) "0",
    73.     ["comment"]=> string(1) "0",
    74.     ["location"]=> string(0) ""
    75.    ),
    76.    ["s"]=> array(6) (
    77.     ["game"]=> string(7) "cstrike",
    78.     ["name"]=> string(22) "Mega Cool Server [18+]",
    79.     ["map"]=> string(12) "de_dust2_2x2",
    80.     ["players"]=> string(1) "7",
    81.     ["playersmax"]=> string(2) "28",
    82.     ["password"]=> string(1) "0"
    83.    )
    84.   )
    85.   [3]=> array(3) (
    86.    ["b"]=> array(7) (
    87.     ["type"]=> string(8) "halflife",
    88.     ["ip"]=> string(12) "212.24.62.38",
    89.     ["c_port"]=> string(5) "27053",
    90.     ["q_port"]=> string(5) "27053",
    91.     ["s_port"]=> string(1) "0",
    92.     ["status"]=> string(1) "1",
    93.     ["pending"]=> int(0)
    94.    )
    95.    ["o"]=> array(6) (
    96.     ["request"]=> string(1) "s",
    97.     ["id"]=> string(2) "49",
    98.     ["vote"]=> string(2) "53",
    99.     ["zone"]=> string(1) "0",
    100.     ["comment"]=> string(1) "0",
    101.     ["location"]=> string(0) "",
    102.    )
    103.    ["s"]=> array(6) (
    104.     ["game"]=> string(7) "cstrike",
    105.     ["name"]=> string(24) "Death[R]un_Serv #1_[K.A]",
    106.     ["map"]=> string(22) "deathrun_4lifefinal_v2",
    107.     ["players"]=> string(1) "1",
    108.     ["playersmax"]=> string(2) "21",
    109.     ["password"]=> string(1) "0",
    110.    )
    111.   )
    во вторых цикл
    Код (Text):
    1.  
    2.   foreach ($lol as $user) {
    3.    if ($user['b']['type'] == 'halflife') {
    4.     echo $user;
    5.    }
    6.   }
    попробуй так..
     
  4. DobroFenix

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

    С нами с:
    22 май 2010
    Сообщения:
    89
    Симпатии:
    0
    А как реализовать это в виде функции, чтобы в функцию отправлялся массив и требуемое значение ['b']['type'], которое требовалось бы найти?
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям