За последние 24 часа нас посетили 42575 программистов и 1814 роботов. Сейчас ищут 1509 программистов ...

Передаем в функц.массив, внутри нужно получить элементы

Тема в разделе "PHP для новичков", создана пользователем php_user, 16 мар 2015.

  1. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Есть массив
    Код (PHP):
    1. $data=(id=>1, name=>'Имя')
    Передаем его в функцию
    Код (PHP):
    1. insert($data)
    Функция внутри
    Код (PHP):
    1. function insert($data) {
    2. $id = $data['id'];
    3. $name = $data['name'];
    4. echo $id;
    5. echo $name;
    6. }
    Можно ли как-нибудь сократить- типа так
    Код (PHP):
    1. function insert(array($id, $name)) {
    2. echo $id;
    3. echo $name;
    4. }
    Этот вариант не работает, просто иллюстрирует
    Или как-нить так
    Код (PHP):
    1. function insert(list($id, $name  = null)) {
    2. echo $id;
    3. echo $name;
    4. }
    Или может есть какая функция чтобы при передаче было типа так
    Код (PHP):
    1. insert(super_parser($data))  
    Ну вы поняли мысль
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код (PHP):
    1. function insert($data) {
    2.   foreach ($data as $key=>$val){
    3.     echo $key;
    4.     echo $val;
    5.   }
    6. }  
    Тебе такое что-то надо?
    И что мешает самому руками просто взять значения из массива? В чем проблема-то?
     
  3. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    в ~ 20 функциях каждый элемент нужно объявлять. Вот и подумал, может есть что облегчит мою участь
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    ЯННП. Можешь нормально объяснить, что к чему а не надеяться на телепатию? Не поленись, напиши больше одной строчки, может и решение проблемы сразу найдется.
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    буквальный ответ - функция extract(). но я НЕ советую использовать ее только потому, что тебе лень явно расписать откуда что берется.
     
  6. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    В kohana использовался ORM, в результате запроса к базе- возвращался объект. Далее с ним можно производить любы другие действия. Понадобилось переписать все с ORM на запросы с использованием "конструктора запросов". Теперь во запросу возвращается не объект, а массив и чтобы полученную информацию как-нибудь изменить- нужно работать не с объектом, а из массива выделять каждый элемент и подставлять в новый запрос.

    ->as_object() в построителе запросов был с ошибкой (уже не помню почему), времени было мало, поэтому все переделал
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код (Text):
    1. foreach ($data as $key=>$val){}
    в руки.