Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   массивы foreach с опеределенным ключем -> значением (https://javascript.ru/forum/server/76385-massivy-foreach-s-operedelennym-klyuchem-znacheniem.html)

drakonolom 07.01.2019 13:01

массивы foreach с опеределенным ключем -> значением
 
Всем привет!

После часового штудирования документации никак не могу понять как использовать foreach для того чтобы он выписал только массивы только с определенным значением.

кароче. У меня есть объект $objects в котором находятся массивы, в каждом массиве есть значение, назовем его value и оно всегда ровняется или 1 или 0

как выписать только те массивы, у которых значение value ровняется 1?

<?php foreach ($objects as $object) {
                ?>

laimas 07.01.2019 13:13

Что значит выписать?

drakonolom 07.01.2019 13:16

Цитата:

Сообщение от laimas (Сообщение 501483)
Что значит выписать?

<?php include(locate_template('parts/template.php')); ?>


в этом шаблоне выписывает всё что нужно

то есть этот шаблон принтит информацию о каждом массиве в объекте $object

laimas 07.01.2019 13:39

Цитата:

Сообщение от drakonolom
в этом шаблоне выписывает

Цитата:

Сообщение от drakonolom
шаблон принтит

Офигеть от словаря. Есть функция фильтрации массива, есть функции пересечения массивов, есть обычный цикл, которым можно обойти массив и выбрать нужное. Выбирайте нужное и делайте требуемое, а в программировании понятия "выписать" нет вообще.

drakonolom 07.01.2019 13:48

Цитата:

Сообщение от laimas (Сообщение 501488)
Офигеть от словаря. Есть функция фильтрации массива, есть функции пересечения массивов, есть обычный цикл, которым можно обойти массив и выбрать нужное. Выбирайте нужное и делайте требуемое, а в программировании понятия "выписать" нет вообще.

Ну простите, объясняю как могу :( "есть обычный цикл, которым можно обойти массив и выбрать нужное." Вот это судя по тому как вы это описали мне и нужно, это обычный цикл foreach?

laimas 07.01.2019 14:12

Цитата:

Сообщение от drakonolom
объясняю как могу

Ну так надо учится пояснять задачу. Если речь идет о передаче в шаблон только тех значений массива, которые равны 1, значит надо и ставить так вопрос. В данном случае выгоднее либо фильтр который возвратит массив требуемых значений, либо пересечение массивов, что также вернет требуемое. Хотя попутно возникает вопрос - что является источником данных и почему в них лишнее?

Если что-то другое, значит о другом. А есть "выписывает и принтит" и что к чему ... ну околесица какая-то.

drakonolom 07.01.2019 14:47

Цитата:

Сообщение от laimas (Сообщение 501490)
Ну так надо учится пояснять задачу. Если речь идет о передаче в шаблон только тех значений массива, которые равны 1, значит надо и ставить так вопрос. В данном случае выгоднее либо фильтр который возвратит массив требуемых значений, либо пересечение массивов, что также вернет требуемое. Хотя попутно возникает вопрос - что является источником данных и почему в них лишнее?

Если что-то другое, значит о другом. А есть "выписывает и принтит" и что к чему ... ну околесица какая-то.

Спасибо, мне еще учится учится и учится, в том числе правильно объяснять задачи =)
Источник данных - объект в котором есть массивы (посты из водрпресса)

laimas 07.01.2019 15:20

Данные в этой CMS хранятся в базе и если необходимо вывести определенные, то только они по условию и выбираются из базы. То есть какой-то еще выборки из уже выбранного из базы не потребуется. Другое дело, что при выборке из базы могут использоваться и объединения запросов, что вы итоге будет отражаться в результате множеством строк относящихся к одной и той же записи.

Что требуется сделать неизвестно, но самое простое, это цикл для вывода.

drakonolom 08.01.2019 13:42

<?php foreach ($objects as $object) if ($object->value)  {
                ?>


Кароч, вот решение. Цикл проходит объект $objects где находятся массивы $object и если в массиве есть значение value (которое равняется 1) то его выводит


Часовой пояс GMT +3, время: 09:57.