0 / 0 / 0
Регистрация: 25.08.2017
Сообщений: 27
|
|||||||||||
1 | |||||||||||
Работа с массивами22.10.2017, 23:11. Показов 1085. Ответов 10
Метки нет (Все метки)
Читал, что на стадии обучеия у многих есть непонимание массивов.
В общем меня есть массив. В этом массиве мне надо найти определенные элементы и удалить их из массива.
Еще задумка была выбираю элементы этого массива, помещаю их в новый массив и потом array_diff из первого массива даляю все элеметы, какие есть во втором, т.к. второй создан на базе первого и о содержит элементы, какие не нужны.
0
|
22.10.2017, 23:11 | |
Ответы с готовыми решениями:
10
Работа с массивами Работа с массивами Работа с массивами Работа с массивами |
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
22.10.2017, 23:28 | 2 |
neonil, лучше приведи исходные данные и желаемый результат
0
|
0 / 0 / 0
Регистрация: 25.08.2017
Сообщений: 27
|
|||||||||||
22.10.2017, 23:37 [ТС] | 3 | ||||||||||
ок.
Это основой массив:
вот эти массивы (к сожалению программно мне так и не удалось сохранить первоначальные идексы).
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
22.10.2017, 23:40 | 4 |
0
|
0 / 0 / 0
Регистрация: 25.08.2017
Сообщений: 27
|
|||||||||||
22.10.2017, 23:46 [ТС] | 5 | ||||||||||
Вот в первом массиве
Из этого массива мне надо удалить
И исходный массив - это первый массив минус эти удаленные подмассивы
0
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
||||||
23.10.2017, 00:29 | 6 | |||||
На стадии обучения у многих есть непонимание, что unset обнуляет значение переменной, а не удаляет элемент из массива. То есть вместо удаления элемента он ставит удаляемый ключ равным null.
Чтобы удалить можно использовать функцию array_splice Например при необходимости удалить 3й 6й 9й и т.д. элементы код будет примерно таким
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
23.10.2017, 09:07 | 7 |
Это неверное утверждение. https://ideone.com/ANM36W
0
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
23.10.2017, 09:27 | 8 |
Jewbacabra, Да, я глупость написал. Разница в том, что он не сдвигает ключи, что в данном случае может быть даже удобным с одной стороны, но с другой стороны в дальнейшем в коде придется это учитывать и не обращаться к удаленным номерам.
Если ключи не имеют принципиального значения, я бы лучше использовал array_splice, чтобы оставалась естественная нумерация массива.
0
|
74 / 71 / 37
Регистрация: 10.09.2011
Сообщений: 169
|
|
23.10.2017, 21:02 | 9 |
neonil, может тогда просто поместить элементы, которые нужны - в новый массив, а старый, с ненужными, забыть?
0
|
0 / 0 / 0
Регистрация: 25.08.2017
Сообщений: 27
|
||||||
23.10.2017, 21:57 [ТС] | 10 | |||||
Да я же все перепробовал - и удалял и забывал и циклы с 10 циклами вутри. Будете смеяться - о я уже стабильно каждый вечер вторую неделю пытаюсь решить эту задачу. Сейчас я склонен сложить эти два массива, что вверху - большой и маленький.
Тут хоть мне условие удалось правильно сделать. В общем подскажите, как мне из большого массива удалить все, что содержится в маленьком. Индексы можно не сохранять.
0
|
74 / 71 / 37
Регистрация: 10.09.2011
Сообщений: 169
|
||||||
24.10.2017, 14:53 | 11 | |||||
Сообщение было отмечено neonil как решение
Решение
neonil, каким образом может работать всё описанное выше, если вы делаете цикл по массиву $kvadrat, но узнаете длину у $result? Зачем два вложенных цикла, если вы делаете удаление верхних элементов?
1
|
24.10.2017, 14:53 | |
24.10.2017, 14:53 | |
Помогаю со студенческими работами здесь
11
Работа с массивами Работа с массивами Работа с массивами Работа с массивами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |