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

Функции для работы с массивами

22.10.2019, 20:57. Показов 1599. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток коллег, подскажите как правильно использовать "in_array"
надо найти в массиве массивов ключ - значение я писал такой бред:
if(in_array(array("quantity"=> 2.5023409 ),$courses)){
echo "найдено";
}
он не работает. Где я ошибся
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.10.2019, 20:57
Ответы с готовыми решениями:

Функции для работы с массивами
Есть некий массив: яблоко => 1 (штук) груша => 4 апельсин => 5 груша => 3 яблоко => 2 яблоко => 6

Функции для работы с массивами
Драсьте, помогите плиз сделать лабу по C++ :) Необходимо написать функции для работы с одномерными массивами: 1) Отведение памяти под...

Функции для работы с массивами и матрицами
Помоги пожалуйста !!! Написать перегруженные функции (int, double, char) для выполнения следующих задач: • Инициализация квадратной...

24
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.10.2019, 21:08
Esso11, а в доке почитать? in_array() ищет только значения, и в случае успеха возвращает булев тип.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 21:29  [ТС]
Строитель,
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
Пример 3. Пример использования in_array() с массивом в качестве параметра needle
 
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
 
if (in_array(array('p', 'h'), $a)) {
    echo "'ph' найдено
";
}
 
if (in_array(array('f', 'i'), $a)) {
    echo "'fi' найдено
";
}
 
if (in_array('o', $a)) {
    echo "'o' найдено
";
}
?>
Результат выполнения данного примера:
 
'ph' найдено
 
  'o' найдено
c этого примера сделал вывод что не только

Добавлено через 1 минуту
Строитель, подскажите как тогда мне найти значение ....?

Добавлено через 5 минут
Строитель, значение в массиве есть но мне возвращается false
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.10.2019, 21:34
Цитата Сообщение от Esso11 Посмотреть сообщение
c этого примера сделал вывод что не только
Что не только что? Повторяю: in_array() ищет только значения, и в случае успеха возвращает булев тип. Для достоверности идём в доку и читаем там описание функции.

А что касается вашего примера (который скорее всего из книги), дак в нём всё правильно - in_array() проверяет наличие массива в массиве массивов.

Добавлено через 1 минуту
Цитата Сообщение от Esso11 Посмотреть сообщение
значение в массиве есть но мне возвращается false
Не может такого быть:
PHP
1
2
3
4
5
6
7
$a = array(
    array('p', 'h'),
    array('p', 'r'),
    'o'
);
 
var_dump( in_array(array('p', 'h'), $a) ); // boolean true
Добавлено через 2 минуты
Цитата Сообщение от Esso11 Посмотреть сообщение
подскажите как тогда мне найти значение ....?
in_array() успешно справляется с этим поиском. А если вам надо получить какое-то значение в одномерном массиве, то есть другие функции для работы с массивами.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 21:37  [ТС]
Строитель, наверное не спустился к нужному массиву .... ладно спасибо

Добавлено через 1 минуту
Строитель, мне не надо одномерный массив. у меня массив двумерный
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.10.2019, 21:39
Цитата Сообщение от Esso11 Посмотреть сообщение
Строитель, мне не надо одномерный массив. у меня массив двумерный
Ок, и что вам нужно с этим массивом делать?
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 21:44
in_array - возвращает TRUE, если значение существует в массиве.
array_key_exists - проверяет, существует ли в массиве данный индекс или ключ.

Если
PHP
1
2
3
 if (array_key_exists('banana',$array)){
echo $array['banana'];
}
если
PHP
1
2
3
4
$os = array ("Mac", "NT", "Irix", "Linux");
if (in_array ("Irix", $os)) {
    print "Got Irix";
}
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 21:45  [ТС]
Строитель, найти ключ и значение в массиве массивов и сравнить его с введенной переменной от пользователя
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.10.2019, 21:50
Esso11, вы уверены? Потому что "найти ключ и значение" и "сравнить его с введенной переменной" уже порождают вопросы. Ключ и значение - это два параметра. Так что именно нужно в массиве искать для сравнения?
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 21:52
Цитата Сообщение от Esso11 Посмотреть сообщение
if(in_array(array("quantity"=> 2.5023409 ),$courses))
$cost = (in_array('2.5023409',$array))? '2.5023409'*$courses:'Фиг его знает';
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 21:56  [ТС]
Строитель, согласен, не подумал. В задании указано так: пользователь вводит число в форму, и это число нужно найти в двух двумерных массивах и уже их сравнить между собой. Но вот ты правильно сказали как найти в массиве нужный индекс не пойму ведь мы передаем только число без ключа...
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 21:57
Цитата Сообщение от Строитель Посмотреть сообщение
Потому что "найти ключ и значение" и "сравнить его с введенной переменной" уже порождают вопросы.
как я понял, ТС проверяет существование значения конверта и пытвается его присобачить к булеву ответу. Если уже в массиве есть это значение, но дальше массив не нужен, просто делаем конвертацию и получаем выхлоп.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 21:59  [ТС]
Цитата Сообщение от esculap_ra Посмотреть сообщение
как я понял, ТС проверяет существование значения конверта и пытвается его присобачить к булеву ответу. Если уже в массиве есть это значение, но дальше массив не нужен, просто делаем конвертацию и получаем выхлоп.
я вообще не понял ваше сообщение
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 22:03
Или я не понял

Добавлено через 3 минуты
Тогда нужно проверить каждый массив по in_array
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 22:03  [ТС]
esculap_ra, приведу пример: есть рынок на нем продают два человека яблоки у одного яблоки по цене 10$ а у второго по 11$. И вот пользователь вводит к примеру в поле яблоки 3(это будет количество кг которых он хочет приобрести) и надо пройтись по двум массивам найти есть ли в них 3 кг яблок и сравнить сколько денег хотят за это количество кг один продавец и второй
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.10.2019, 22:07
Цитата Сообщение от Esso11 Посмотреть сообщение
как найти в массиве нужный индекс
array_search() ищет значение и возвращает индекс.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 22:10  [ТС]
как данное значение введенное пользователем сравнивать с конкретным индексом в массиве? Нужно еле поле где надо вводить ключ который указан в массивах ?

Добавлено через 1 минуту
Строитель, наверное array_search() не совсем мне подойдет для моей задачи
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 22:11
Функция bool in_array (mixed needle, array haystack [, bool strict]) может принимать для проверки массив параметров, но не работает с двухмерными массивами данных. В твоем случае array("quantity"=> 2.5023409 ) не произойдет проверка, так как используется именованный массив, а in_array работает на массивах, типа (1,2,3,4,5).
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
22.10.2019, 22:12  [ТС]
Строитель, или все же можно пройтись по всему массиву вернет array_search() все индексы их сравнить с нужным мне в if() и потом так же с другим массивом проделать и результаты if() уже сравнивать между собой?!
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
22.10.2019, 22:15
Значит измени функцию
PHP
1
if (in_array('2.5023409 ', $arra['quantity']))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2019, 22:15
Помогаю со студенческими работами здесь

Функции для работы с динамическими массивами
Объявить указатель на массив типа double и предложите пользователю выбрать его размер. Далее напишите четыре функции: первая должна...

Какие есть функции для работы с массивами
Всем привет.Хочу узнать все функции для работы с массивами(как их крутить ,поворачивать по диагонали и все прочее),точное пояснение ко...

Создание шаблонной функции для работы с массивами разных типов данных
Здравствуйте. Столкнулся со следующей проблемой: не могу написать шаблонную функцию подсчета суммы элементов в массиве между первым и...

Создать класс, в котором реализовать функции для работы с одномерными массивами
Ребят помогите с задачкой Создать класс, в котором реализовать функции для работы с одномерными массивами: а) получить...

Процедуры для работы с массивами
Здравствуйте , вот нужно пару заданий доделать , но просто физически не успеваю уже(и так уже 2 дня подряд решаю ) , может кто-то знает как...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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