Как передать массив в функцию php
Перейти к содержимому

Как передать массив в функцию php

  • автор:

Есть ли способ передать массив, как список аргументов, в функцию?

Она получает, в качестве аргументов, некоторое число массивов, первый из которых содержит данные для сравнения, а второй и последующие проверяются на наличие в них совпадений. Есть игровое поле 10×10 клеток, данные о котором хранятся в соответствующем двухмерном массиве. Мне требуется посчитать, сколько клеток определённого типа есть на всём поле. Функция предполагалась как универсальная, для подсчёта количества совпадений в любом массиве, и переписывать её для проверки массива двухмерного мне не очень хочется. Очевидное решение состоит в том, что бы переписать функцию для получения ею двух массивов, второй из которых будет содержать массивы для проверки, или ввести ещё один обязательный аргумент, содержащий указание глубины погружения, но я не уверен, что это — оптимальный вариант. Поэтому вопрос: Нет ли способа передать все элементы массива в функцию, в качестве независимых аргументов? Есть функция list() , но она просто превратит массив из десяти элементов в десять отдельных переменных, которые всё равно придётся передавать функции вручную, как и если бы я просто перечислил все элементы массива. Хотелось бы что-то более элегантное, тем более, что я почти уверен, что такое решение есть, просто я его не нашёл.

Передать массив в функцию

Передать массив параметров в функцию
Доброго времени суток Столкнулся с такой проблемой Есть Функция: $new_image =.

Как передать переменную (массив) в функцию?
У меня с этим PHP уже реально крыша отъезжает. Я-то привык, что во всех известных мне языках.

Передать массив d JS-функцию
Здравствуйте. Есть два массива $A и $B. Нужно что бы при клике на элемент массива А, выводился.

Эксперт PHP

4877 / 3880 / 1609
Регистрация: 24.04.2014
Сообщений: 11,371

arrayFunc($arr);

Заблокирован

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

Позволю себе несколько развернуть ответ, а то я когда сам учил это дело, не сразу догнал из за одинаковых имён.

1 2 3 4 5 6
function arrayFunc($arr) { print_r($arr); } $ljuboj_massiv = array(1 => 'one', 2 => 'two'); arrayFunc($ljuboj_massiv);

669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122

Может быть лучше переменную назвать не $ljuboj_massiv, а, например $any_array или $another_array?
А то как-то не смотрится, там one, to, а здесь русский транслит. Тогда уж odin, dva.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Передать переменные в функцию
Здравствуйте. Есть сценарий: function template($tpl, $template) .

Передать параметр во вложенную функцию
как из объекта, можно передать параметр в вложенную функцию? public function fn1()< function.

Передать переменную из php в функцию js
Прошу помочь, кто разбирается. Суть есть переменная $Pobn которая получается так:$Pobn =.

передать выбранный option в функцию
привет! имеется 3 select’a,второй получает контент ответом на пост запрос исходя из первого,третий.

Как передать массив в функцию php

Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009

Помог: 0 раз(а)

Подключабсь к базе данных, извлекаю данные в массив

$sql = mysql_query ( «SELECT bd.npp, bd.rs, bd.name, FROM bd» ) or die ( «Invalid query: » . mysql_error ( ) ) ;

вызываю функцию
prin2 ( $sql ) ;

сама функция
function prin2 ( $sql )
while ( $x == 0 )
$myrow = mysql_fetch_array ( $sql ) ;
if ( ! $myrow )
echo » \» $myrow[0] \» » ;
echo » \» $myrow[1] \» » ;
echo » \» $myrow[2] \» » ;

цикл сразу переходит к завершению, не разбивает массив на строки, не выводит ошибок, такое ощущение что массив просто не передаётся в функцию

(Отредактировано автором: 06 Октября, 2010 — 06:40:07)

Отправлено: 06 Октября, 2010 — 06:47:09

Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2010

Помог: 0 раз(а)

А что вообще тебе надо с полученными данными из БД сделать?
Отправлено: 06 Октября, 2010 — 07:26:01

Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009

Помог: 0 раз(а)

эта функция в дальнейшем будет выводить данные в таблицу.
она работает в отдельном файле-скрипте, но я хочу её засунуть в основной скрипт как функцию, но не могу массив передать в функцию
(Добавление)
тоесть если так то работает

$sql = mysql_query ( «SELECT bd.npp, bd.rs, bd.name, FROM bd» ) or die ( «Invalid query: » . mysql_error ( ) ) ;

while ( $x == 0 )
$myrow = mysql_fetch_array ( $sql ) ;
if ( ! $myrow )
echo » \» $myrow[0] \» » ;
echo » \» $myrow[1] \» » ;
echo » \» $myrow[2] \» » ;

а если так то не работает

$sql = mysql_query ( «SELECT bd.npp, bd.rs, bd.name, FROM bd» ) or die ( «Invalid query: » . mysql_error ( ) ) ;

prin2 ( $sql ) ;
function prin2 ( $sql )
while ( $x == 0 )
$myrow = mysql_fetch_array ( $sql ) ;
if ( ! $myrow )
echo » \» $myrow[0] \» » ;
echo » \» $myrow[1] \» » ;
echo » \» $myrow[2] \» » ;

(Отредактировано автором: 06 Октября, 2010 — 07:30:31)

Отправлено: 06 Октября, 2010 — 07:58:37

Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010
Откуда: Киров

Помог: 6 раз(а)

Axiles пишет:
но не могу массив передать в функцию

Вообще-то вы передаете не массив, а указатель на результат запроса.
Из запроса уберите лишнюю запятую.

Отправлено: 06 Октября, 2010 — 09:16:11

Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009

Помог: 0 раз(а)

тоесть вот так?

$sql = mysql_query ( «SELECT bd.npp, bd.rs, bd.name FROM bd» ) or die ( «Invalid query: » . mysql_error ( ) ) ;

так тоже не работает
(Добавление)
сделал так
echo «вызов функции>>>>>>>» ; echo $sql ; echo «
» ;

prin2 ( $sql ) ;
function prin2 ( $sql )
echo «перед циклом>>>>>>>» ; echo $sql ; echo «
» ;

while ( $x == 0 )
echo «перед array>>>>>>>» ; echo $sql ; echo «
» ;

$myrow = mysql_fetch_array ( $sql ) ;
echo «после array>>>>>>>» ; echo $sql ; echo «
» ;

if ( ! $myrow )
echo «конец цикла>>>>>>>» ; echo $sql ; echo «
» ;

echo «цикл>>>>>>>» ; echo $sql ; echo «
» ;

echo » \» $myrow[0] \» » ;
echo » \» $myrow[1] \» » ;
echo » \» $myrow[2] \» » ;
CODE (htmlphp):
скопировать код в буфер обмена
вызов функции >>>>>>> Resource id #3
перед циклом >>>>>>> Resource id #3
перед array >>>>>>> Resource id #3
после array >>>>>>> Resource id #3
конец цикла >>>>>>> Resource id #3
Отправлено: 06 Октября, 2010 — 10:26:56

Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009
Откуда: Россия, Санкт-Петербург

Помог: 617 раз(а)

Нет, так она именно работает.
Почитайте, что возвращает mysql_query — возвращает она ресурс. Что с этим делать дальше — посмотрите в конце описания сноску «см. также».

Отправлено: 06 Октября, 2010 — 13:02:51

Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009

Помог: 17 раз(а)

Axiles Различые определенные в языке PHP типа переменных используют различное поведение относительно передчи их значения по ссылке или осуществления копирования — в частности для сложных информационных типов таких как объекты и ресурсы используется безусловная передача по ссылке — и в случае если вам необходимо провести именно копирования объекта с его переинициализацией полями источника применяется функция clone

——
Сделать можно все что угодно — нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства — http://ihost[dot]oks71[dot]ru/

Отправлено: 26 Сентября, 2013 — 08:43:27

Покинул форум
Сообщений всего: 38
Дата рег-ции: Янв. 2013

Помог: 0 раз(а)

Помогите, есть возможность передать приведенный ниже массив, как аргумент в функцию?

$element = array ( «pr» => «Параграф» , «prTwo» => «Параграф второй» , «hd» => «Заголовок» , «lis» => «Список» , «tab» => «Таблица» , «divs» => «Блок» , «rf» => «ссылка» , «bt» => «кнопка» ) ;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *