Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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

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

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

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

Цитата:
Сообщение от 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 в 14:46.
OmegaBerkut вне форума   Ответить с цитированием
Старый 13.02.2018, 15:37   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка внутренних кавычек 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 15:34
Рекурсивный сбор внутренних ссылок с сайта ZolanPro Работа с сетью в Delphi 6 07.03.2010 14:48


05:39.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru