Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2018, 12:50   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Пересортировка внешнего массива, переподчинение внутренних

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

Проблема в пере-привязке подчинённых массивов. Был бы массив числовой, а не ассоциативный - я бы придумал, как их перелинковать ... Это в продолжение к моей эпопее о том, что числовая индексация перед символьной таки имеет преимущества (и уже на вполне конкретном примере).
Из-за моей несостоятельности в ассоциативных массивах, все мои действия приводят к потере символьных ключей (это я поясню по своему коду).

Условие пересортировки массивов очень банальное - нужно сначала вывести те элементы (запчасти автомагазина), которые есть в наличии, а потом все остальные. Переделать данные на входе не предоставляется возможным, потому что все переделки должны максимально имитировать изначальную логику (которую составлял не я). Или полностью с нуля писать свой сайт.

Такая пересортировка предполагает все действия до цикла вывода информации.
Вот что я накидал: кода не мало, поэтому перенёс сюда, дабы никому не покалечить психику (почти все строки там комментированы).

Что можете помочь-подсказать ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 13.02.2018, 13:30   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если возможно, приведите пример $arResult на входе
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2018, 13:38   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если возможно, приведите пример $arResult на входе
Код:
<?
foreach($arResult['PRICES'][$arPart['PKEY']] as $arPrice)
{
	$OpCnt++;
	if($OpCnt>$arResult['LIST_PRICES_LIMIT'])
	{
		$OpClass='op'.$arPart['PKEY'];
		$OpStyle='style="display:none;"'; 
	} else
	{
		$OpClass=''; $OpStyle='';
	} ?>
	<tr class="<?=$OpClass?>" <?=$OpStyle?> ><td><?=$arPrice['OPTIONS']['VIEW_INTAB']?></td></tr> <?
} ?>
$arResult, $arPart, $arPrice, и прочие $ar_ используются как наборы данных, из которых происходит чтение каких то собственно данных, не привязанных к тому, что я пытаюсь изменить.
Замена элементов (записью в массив по ключу) ничего хорошего не делает, а параметры обработки данных я не трогаю. Лишь переделываю и подменяю переменные с самими массивами (и их содержимым).

Кстати, приведённый кусок кода в этом посту - комментированный.
Есть всякие if ($arResult['ADDED_PHID']==$arPrice['PHID']), которые не имеют такой связки, как выше.

UPD: я наверное не понял, о чём идёт речь ... Привести пример этого массива конечно возможно, но данных там без лишнего дохренища, могу serialize сюда закинуть.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 13.02.2018 в 13:46.
OmegaBerkut вне форума Ответить с цитированием
Старый 13.02.2018, 14:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
ривести пример этого массива конечно возможно, но данных там без лишнего дохренища, могу serialize сюда закинуть.
ну, если "дохренища", то не надо полностью закидывать.
можете сделать пример из 5-10-20 записей, чтобы проиллюстировать - что дано,
и что получается (в идеале - что надо получить).
или просто сделайте небольшую выборку
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2018, 15:26   #5
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Serge_Bliznykov, ладно уже ... Я эти массивы раскидываю по дополнительным массивам (массивов), и объединяю в необходимом порядке.
Если мне так при каждой необходимости что то поменять, каждый раз изучать конечное содержимое - я буду дольше это что то менять. Проще изучить и изменить логику обработки, не задаваясь проблемой содержимого.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка внутренних кавычек caute Microsoft Office Word 9 09.06.2014 08:51
DBgrid Имитация внутренних группировок. spotip Общие вопросы Delphi 3 03.06.2014 09:30
Одномерный массив. Определить количество "внутренних" точек массива. С# Артур741 Помощь студентам 7 19.02.2013 13:50
Пересортировка заявлений KorvinDeSon Microsoft Office Word 4 10.02.2011 14:34
Рекурсивный сбор внутренних ссылок с сайта ZolanPro Работа с сетью в Delphi 6 07.03.2010 13:48