Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Noit
26 / 26 / 10
Регистрация: 11.04.2012
Сообщений: 870

Передача функции в качетве параметра массив

12.06.2013, 16:33. Показов 742. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал функцию, в которую передаю кучу параметров, есть и массив, но при использовани передоваемого массива возникает Notice: Undefined offset, подскажите как быть.
Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
for($c=1; $c<=$indexFilm; $c++)
    {
        for($a=$indexEndCost[$c]+3; $a<=$indexEndTime[$c]; $a++)
        {
            for($b=3; $b<=14; $b++)
            {
                if (!empty($data->sheets[0]['cells'][$a][$b]))
                {   
                    $seansDateTime++;
                    $seansCostName[$c][$seansDateTime]=$data->sheets[0]['cells'][$a][$b];
                    $date[$c][$seansDateTime]=$data->sheets[0]['cells'][$indexEndCost[$c]+2][$b];
                    $time[$c][$seansDateTime]=$data->sheets[0]['cells'][$a][2];
                    echo " ".findCost($indexFilm,$indexStartFilm,$indexEndCost,$data,$seansCostName,$seansDateTime,$c);                 
                }
            }
        }
    }
 
function findCost($indexFilm,$indexStartFilm,$indexEndCost,$data,$seansCostName,$seansDateTime,$c)
{
$costIndex=0;
$seansCost=0;
 
    for($b=1; $b<=$indexFilm; $b++)
    {
        for($e=$indexStartFilm[$b]+2; $e<=$indexEndCost[$b]; $e++)
        {
            $costIndex++;
            $str=strstr($data->sheets[0]['cells'][$e][2],"(");
            $str2=strpos($str,")")-1;
            $costType[$b][$costIndex]=substr($str,1,$str2);
            $cost[$b][$costIndex]="";
 
            for($d=4; $d<=13; $d++)
            {
                if (!empty($data->sheets[0]['cells'][$e][$d]))
                {               
                    $cost[$b][$costIndex].=$data->sheets[0]['cells'][$e][$d].";";
                }
                else
                echo "";
            }
            $length=strlen($cost[$b][$costIndex]);
            $cost[$b][$costIndex]=substr($cost[$b][$costIndex],0,$length-1);
        }   
    }
 
    for($f=1; $f<=10; $f++)
    {
        if ($seansCostName[$c][$seansDateTime]==$costType[$c][$f])/// Здесь смотреть
        {
            $seansCost=$cost[$c][$f];
        }
    }
 
    return $seansCost;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2013, 16:33
Ответы с готовыми решениями:

Передача параметра по ссылке <a></a>
Добрый день! На моей страничке есть запрос, который формирует таблицу, в которой каждая строка - ссылка на другую страницу $query...

Передача параметра в array_filter
Объясните, почему если нужно произвести фильтрацию массива по значению из переменной этот код вызывает ошибку Undefined variable: x? ...

Передача параметра с формы
Файл param.php. Вопрос: Почему выдает ошибку &quot;Notice: Undefined variable: username in C:\xampp\htdocs\Lesson1\param.php on line...

4
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
12.06.2013, 16:47
Цитата Сообщение от Noit Посмотреть сообщение
$costType[$c]
у вас нет элемента массива с таким индексом.. вы же не проверяете $c.. это может быть что угодно, а что угодно вам даст нотис..
0
 Аватар для Noit
26 / 26 / 10
Регистрация: 11.04.2012
Сообщений: 870
12.06.2013, 17:05  [ТС]
Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
у вас нет элемента массива с таким индексом.. вы же не проверяете $c.. это может быть что угодно, а что угодно вам даст нотис..
у меня $c имеет тот же диапазон, что и $b, поэтому дело не в этом, даже если подставить вместо $c цифру соответствующую диапазону, в котором есть $b, то нотис будет выдавать то же
PHP
1
2
3
4
5
6
7
for($f=1; $f<=10; $f++)
    {
        if ($seansCostName[4][$seansDateTime]==$costType[4][$f])
        {
            $seansCost=$cost[4][$f];
        }
    }
0
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
12.06.2013, 17:37
чудес не бывает и нотисы просто так не появляются $seansCostName[$c][$seansDateTime]==$costType[$c][$f] либо $c, либо $f, либо $seansDateTime не входит в диапазон массива...
0
 Аватар для Noit
26 / 26 / 10
Регистрация: 11.04.2012
Сообщений: 870
13.06.2013, 13:28  [ТС]
Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
чудес не бывает и нотисы просто так не появляются $seansCostName[$c][$seansDateTime]==$costType[$c][$f] либо $c, либо $f, либо $seansDateTime не входит в диапазон массива...
дело в том что до функции использовал $seansCostName[$c][$seansDateTime] и все было ок-значит здесь индексы($c, $seansDateTime) в норме, эти же индексы я передаю в функцию
PHP
1
findCost($indexFilm,$indexStartFilm,$indexEndCost,$data,$seansCostName,$seansDateTime,$c);
дальше, в $costType[$c][$f], индекс $f входит в диапазон индекса $costIndex, а $c в диапазон индекса $b (до этого использовал $costType[$b][$costIndex] и все было ок), тоесть где может быть проблема?

Добавлено через 1 час 7 минут
Вот так работает
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function findCost($indexFilm,$indexStartFilm,$indexEndCost,$data,$seansCostName,$seansDateTime,$c)
{
$costIndex=0;
$seansCost=0;
 
//Find Cost type by seans
//@param $b - index film
    for($b=1; $b<=$indexFilm; $b++)
    {
        for($e=$indexStartFilm[$b]+2; $e<=$indexEndCost[$b]; $e++)
        {
            $costIndex++;
            $str=strstr($data->sheets[0]['cells'][$e][2],"(");
            $str2=strpos($str,")")-1;
            $costType[$b][$costIndex]=substr($str,1,$str2);
            $cost[$b][$costIndex]="";
 
            for($d=4; $d<=13; $d++)
            {
                if (!empty($data->sheets[0]['cells'][$e][$d]))
                {               
                    $cost[$b][$costIndex].=$data->sheets[0]['cells'][$e][$d].";";
                }
                else
                echo "";
            }
            $length=strlen($cost[$b][$costIndex]);//length all cost
            $cost[$b][$costIndex]=substr($cost[$b][$costIndex],0,$length-1);//all cost
 
            if (($c==$b) & ($seansCostName[$c][$seansDateTime]==$costType[$b][$costIndex]))
            {
                $seansCost=$cost[$b][$costIndex];
            }
        }   
    }
 
    /*for($f=1; $f<=$costIndex; $f++)
    {
        if ($seansCostName[$c][$seansDateTime]==$costType[$c][$f])
        {
            $seansCost=$cost[$c][$f];
        }
    }*/
 
    return $seansCost;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2013, 13:28
Помогаю со студенческими работами здесь

Передача GET параметра сессии
Здравствуйте. Как сделать так чтобы если допустим нажал на любую ссылку через GET бы передовался номер и записывался в сессию и позже...

Передача указателя на массив в качестве параметра функции в QML
Доброго времени суток. Имеется следующая система - в Qml приложении есть два элемента: Text{} и Button{}. По нажатию на кнопку в C++...

Передача параметра функции
Подскажите пожалуйста каким образом передавать уже явные параметры CreateRectRgn в параметры BitBlt или StreatchBlt не прибегая к...

Передача параметра из функции
Коллеги, добрый день. Добавил в функцию дополнительный параметр BigP. Но почему-то после вызова функции, он всегда равен 0. Текст...

Передача функции в качестве параметра
Все привет. Помогите в решении следующей проблемы: есть класс XXX, один из методов которого принимает в качестве параметра указатель на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru