За последние 24 часа нас посетили 22270 программистов и 1165 роботов. Сейчас ищут 685 программистов ...

Обработка массива

Тема в разделе "PHP для новичков", создана пользователем HTTPnoname404, 15 авг 2017.

  1. HTTPnoname404

    HTTPnoname404 Новичок

    С нами с:
    15 авг 2017
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте, помогите реализовать такую обработку.
    есть переменная в которую заносятся информация через цикл, в строку.
    и есть ассоциативные массивы, которые хранят информацию как "ключ=>значение".

    как сделать такую проверку, если "слово" которое лежит в переменной совпадёт с "ключём" одного из массивов, то выведется значение массива с которым совпало слово.

    думаю лучше преобразовать "переменную" в массив для удобства.
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    PHP:
    1. <?php
    2. $arr = ['key1'=>'val1','key2'=>'val2','key3'=>'val3'];
    3. $val = 'key3';
    4. if(array_key_exists($val,$arr)){
    5.     echo $arr[$val];
    6. } else {
    7.     echo 'Такого ключа не существует';
    8. }
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. echo ( ['key1'=>'val1','key2'=>'val2','key3'=>'val3'][$value] ?? 'Такого ключа не существует' );
     
    Fell-x27 нравится это.
  4. HTTPnoname404

    HTTPnoname404 Новичок

    С нами с:
    15 авг 2017
    Сообщения:
    4
    Симпатии:
    0
    а если в переменной будет несколько строк, совпадающих?
    --- Добавлено ---
    а если в переменной будет несколько строк, совпадающих?
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    еще один убунта..
     
    xaker01 нравится это.
  6. HTTPnoname404

    HTTPnoname404 Новичок

    С нами с:
    15 авг 2017
    Сообщения:
    4
    Симпатии:
    0
    1. $arr = ['key1'=>'val1','key2'=>'val2','key3'=>'val3'];
    2. $val = 'key3key1';
    3. if(array_key_exists($val,$arr)){
    4. echo $arr[$val];
    5. } else {
    6. echo 'Такого ключа не существует';
    7. }
    --- Добавлено ---
    если в переменной не одно значение которое будет совпадать, то как быть?
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    определиться что тебе нужно и для чего тебе несколько значений. Один ход делая, думай про второй или сдохнешь в паутине.
     
  8. HTTPnoname404

    HTTPnoname404 Новичок

    С нами с:
    15 авг 2017
    Сообщения:
    4
    Симпатии:
    0
    Работаю я с cURL, вывожу таблицу данных по API, чтобы вывести полностью нормальную таблицу надо сделать два запроса, "в первом запросе я получаю половину таблицы, во второй - вторую".
    далее я должен занести её в бд и вывести на странице.
    Я хочу сделать чтобы программа заносила в бд данные в одну таблицу из двух http запросов.
    1. $arr = ['key1'=>'val1','key2'=>'val2','key3'=>'val3']
    2. $val = 'key3key1';
      в $arr у меня находиться имя и значение из получаемой таблицы (вторая половина)
      в $val у меня находятся имена
      следовательно в обоих массивах одинаковые имена, и если бы имена совпадали я создал новый массив с упорядоченным порядком имён как у первой части таблицы, и со значениями второй части таблицы.
     
  9. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Возможно Вам подойдет такой вариант:
    PHP:
    1. $arr1 = ...;
    2. $arr2 = ...; //два исходных массива
    3. $str = ...; // исходная строка
    4. $arr = array_merge($arr1, $arr2); // Объединение исходных массивов в один
    5. $new_str = strtr($str, $arr); //заменяются все комбинации символов, соответствующие ключам массива на значения под этими ключами
    Если я правильно понял про "вторую", "первую" и хз какую половину.
     
  10. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    а результат первого запроса куда съедаешь при втором запросе?
    фантастику представил. в сторону session придется смотреть
     
  11. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Вся проблема в неправильном подходе/логике может быть.
    Что мешает вывести нормально таблицу 1 запросом ?
    Какие то ошибки возникают? время жизни скрипта не хватает итд ?
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    религия мб
     
    xaker01 нравится это.