Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
42 / 10 / 6
Регистрация: 21.12.2013
Сообщений: 208

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

20.03.2014, 17:02. Показов 1418. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив
$mas("odin", "dva", "tri")

1) Необходимо создать функцию которая принимает одну из строк массива и выводит соответствующую цифру, например выбрана строка "dva" , а возвращена цифра 2.

2) После нужно создать массив из 100 элементов и каждому элементу присвоить значение равное (номер_итерации * х) где х это число преобразованное из строки в первом условии

В моем решении выдает ошибку, не могу въехать как решить.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$mas = array("odin", "dva", "tri");
 
function obm($mas[$i]){
    if $mas[$i] = "odin" $mas[$i] = 1;
        return $mas[$i];
    if $mas[$i] = "dva" $mas[$i] = 2;
        return $mas[$i];    
    if $mas[$i] = "tri" $mas[$i] = 3;
        return $mas[$i];
}
 
  $n = 0;
  $new = array();
    for ($i = 0; $i < 100; $i++) {
      $n++;
        $i = $n * $mas[$i];
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2014, 17:02
Ответы с готовыми решениями:

Работа с массивами
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.Минимальный элемент массива. 2.Сумму элементов массива...

работа с массивами
дана действительная квадратная матрица порядка n.Вычислить сумму тех из ее элементов,расположенных на побочной диагонали и выше нее,которые...

Работа с массивами
Имеется переменная вот с таким значением (получено с помощью var_dump) array(24) { =&gt; string(59)...

3
 Аватар для amadey18
92 / 92 / 51
Регистрация: 29.04.2013
Сообщений: 361
20.03.2014, 17:36
Лучший ответ Сообщение было отмечено pitline как решение

Решение

Вам необходимо такое?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function obm($string)
{
    $mas = array("odin", "dva", "tri");
    for($i = 0; $i < count($mas); $i++)
    {
        if($string == $mas[$i])
        {
            return ++$i;
        }
    }
}
    $new = array();
    for ($i = 0; $i < 100; $i++) 
    {
        $new[$i] = $i * obm("tri");
    }
    for ($i = 0; $i < 100; $i++) 
    {
        echo $new[$i]."<br>";
    }
    var_dump($new);
0, 3, ... 297
1
42 / 10 / 6
Регистрация: 21.12.2013
Сообщений: 208
20.03.2014, 17:45  [ТС]
да, спасибо
0
0 / 0 / 0
Регистрация: 23.02.2015
Сообщений: 1
23.02.2015, 16:34
Вот всего пару строк.

PHP
1
2
3
4
5
6
7
$Str = 'tri';//Искомая строка.
 
$mas = array("odin", "dva", "tri");//Инициализация массива.
$num = array_search($Str, $mas)+1;//Поиск ключа по нужной строке, плюс 1, так как индекс с нуля начинается.
$new = range(0, $num*99, $num);//Заполнение значениями с найденным интервалов, не превышаюший 100 итераций.
 
echo "new='".var_export($new, true)."'\n";//Вывод дампа.
0, 3, ... 297

Добавлено через 8 минут
А гонять 100 раз функцию, которая всегда возвращает одно и тоже значение это вообще не камельфо.

Добавлено через 2 часа 13 минут
Чисто ради интереса попытался разобрать исходный код. Мозги чутка начали кипеть :-)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$mas = array("odin", "dva", "tri");//Инициализация массива.
 
//Объявление функции.
function obm($mas[$i]){//Входящий параметр, массив с перемменной? Даже пхп такое не понимает. Ну бум считать что это просто переменная типа $mas_i
    if $mas[$i] = "odin" $mas[$i] = 1;//Сравнение входящей переменной со строкой "odin", зачем было инциализировать массив, если совпадает, то мы массиву который раньше инициализировали присваеваем 1. Но так как это функция, то видимости массива тут нет, то есть основной не иземеняется. Просто создается внутренний и ему присвается значение. При этом у нас нету значения $i. По умолчанию будет $mas[0]. Также сама конструкция if сама по себе не правильная.
        return $mas[$i];//Возвращение значения из массива, присвоенного ранее. Можно было бы в предедущей строчку сделать ретурн. При этом эта строчка будет выполнятся всегда. Так как если бы if был бы правильный, то он сработал бы только на первую операцию. И дальнейший код никогда бы не выполнялся.
    if $mas[$i] = "dva" $mas[$i] = 2; //Ну тут аналогично первым двум строкам.
        return $mas[$i];    
    if $mas[$i] = "tri" $mas[$i] = 3;
        return $mas[$i];
}
//Функция то написана, но блин она же нигде не вызывается!
 
  $n = 0;//Зачем-то инициализируем счетчик. Но черт возьми, он в конце концов спасает от постоянной рекурсии :-)
  $new = array();//Инициализация нового массива.
    for ($i = 0; $i < 100; $i++) {//Стар цикла от 0 до 99 с шагом 1 в переменную $i. Единственная правильная сктрока с осмысленным кодом во всем скрипте.
      $n++;//К счетчику сразу пуляем +1, то есть он у нас является дубликатом переменной $i + 1
        $i = $n * $mas[$i];//Тут я долго думал :-) Допустим первый проход в цикле. $i=0; $n=1; $mas[$i]='odin'. Имеем комбинацию $i = 1 * "odin"; Пхп пытается перевести "odin" в цисловую переменную, получает 1. Итого мы имеем 1 * 1 =1;  Дальше лучше, следующий цикл $i=1; $n=2; $mas[$i]="dva"; $i = 2 * "dva"; То есть получаем в $i значение 2. В следующем цикле аналогично. $i=2;$n=3;$mas[$i]='tri';$i=3*'tri'=3; А вот следующая итерация уже достойна высшей математики :-) $i=3;$n=4; $mas[$i] то есть индекс 3, блин а нет таког, то есть пустая строка, и мы имеем далее $i=4 * "". Пхп интрепретирует пустую как ноль и в переменной $i получаем 0. Что сбрасывает цикл в самое начала. И если бы не растущий счетчик $n, то выхода из цикла бы вообще не было. На следующем шаге получается примерно такое $i=1;$n=5;$mas[$i]='dva';$i=5*"dva"=5. Следующая $i будет 6, потом 0, потом 8, потом 0 и т.д.
    }
    //И в конце концов мы ничего не получаем, так как нигде не использовали массив $new;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2015, 16:34
Помогаю со студенческими работами здесь

Работа с массивами и БД
Всем привет. Имеется такой код: &lt;ol class=&quot;ipsDataList ipsDataList_reducedSpacing cTopContributors&quot;&gt; &lt;? // Тут были данные к БД ...

работа с массивами
Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все положительные элементы, а в конец массива - все...

Работа с массивами
Всем привет,хэлп ми плиз, кому не сложно и не лень:).Вообщем задали два задания: 1)Написать одномерный массив,найти минимальный элемент, и...

Работа с массивами
Программа, которая считывает из заранее подготовленного текстового файла, и должна сначала вывести весь текст просто на экран, потом...

Работа с массивами
Имеется массив Array ( =&gt; 08.16.2011-15.49.51-57-61-1.jpg|title =&gt; Ваш текст 1 =&gt; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru