0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 13
1

Как пересобрать массив

24.01.2017, 13:21. Показов 1090. Ответов 6
Метки нет (Все метки)

Доброго дня. Помогите разобраться - есть следующие массивы:

1.

PHP
1
2
3
4
5
6
productidsArray
(
    [0] => 31
    [1] => 30
    [2] => 29
)
2.

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
26
27
28
29
30
31
32
33
products_infoArray
(
    [0] => Array
        (
            [id] => 29
            [code] => 41
            [name] => кофта
            [size] => 40,44,48,52,56
            [colors] => 
            [price] => 234
        )
 
    [1] => Array
        (
            [id] => 30
            [code] => 60
            [name] => кофта 2
            [size] => 44,48,52
            [colors] => 
            [price] => 635
        )
 
    [2] => Array
        (
            [id] => 31
            [code] => 80
            [name] => Набор д/д 4 предмета
            [size] => 40,44,48,52
            [colors] => белый,серый
            [price] => 998
        )
 
)
Нужно, чтоб массив 2 пересортировался по порядку ключей id = значениям из массива 1, т.е.

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
26
27
28
29
30
31
32
33
34
products_infoArray
(
    [0] => Array
        (
            [id] => 31
            [code] => 80
            [name] => Набор д/д 4 предмета
            [size] => 40,44,48,52
            [colors] => белый,серый
            [price] => 998
           
        )
 
    [1] => Array
        (
            [id] => 30
            [code] => 60
            [name] => кофта 2
            [size] => 44,48,52
            [colors] => 
            [price] => 635
        )
 
    [2] => Array
        (
            [id] => 29
            [code] => 41
            [name] => кофта
            [size] => 40,44,48,52,56
            [colors] => 
            [price] => 234
        )
 
)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2017, 13:21
Ответы с готовыми решениями:

Как разобрать многомерный массив и пересобрать его в нужном виде?
Добрый день. Подскажите пожалуйста по такой проблеме: Имеется JSON: string(1514) "{...

Пересобрать массив php
Товарищи не пинайте сильно,я начинающий, но так уже все перерыл не нашел.Как мне перебрать массив...

Пересобрать массив строк заново, производя над ним определённые операции
Всем здравствуйте. Есть массив строк. Среди элементов этого массива встречаются пустые строки (или...

Как пересобрать ядро FreeBSD?
подскажите пожалуйста как пересобрать ядро FreeBSD. приходиться изучать ОСь,... знаний у меня о...

6
1640 / 1306 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
24.01.2017, 13:54 2
PHP
1
2
array_multisort($arr, SORT_DESC); //либо SORT_ASC, если надо по порядку
print_r($arr);
1
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1842 / 1339 / 598
Регистрация: 12.01.2011
Сообщений: 5,405
24.01.2017, 16:04 3
PHP
1
2
3
4
uasort($arr,function($a,$b){
    return $b['id'] - $a['id'];
});
print_r($arr);
1
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 13
25.01.2017, 08:03  [ТС] 4
Плюсанул обоим. Но ведь порядок значений в 1-м массиве может быть иным:

PHP
1
2
3
4
5
6
productidsArray
(
    [0] => 30
    [1] => 31
    [2] => 29
)
Как тогда быть?
0
1640 / 1306 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
25.01.2017, 09:47 5
superstas2007, прочитайте изначальное ТЗ. Как я понял, надо было отсортировать массив по id в обратном порядке. Разве нами сделано не то, что Вы просили?

Добавлено через 1 минуту
А что это за сортировка такая хитрая?
PHP
1
2
3
4
5
6
productidsArray
(
    [0] => 30
    [1] => 31
    [2] => 29
)
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 13
25.01.2017, 10:17  [ТС] 6
Вероятно, я некорректно сформулировал тз.

Это сортировка массива товаров, которые были добавлены в корзину:
изначально в корзине массив (id товара=>количество товара), далее массив 1 (индекс=>id товара) в виде строки передаем в одном запросе к БД, которая возвращает массив 2 (указанный вверху темы) => вывод в цикле.
Необходимо, чтобы вывод товаров был в порядке добавления в корзину, т.е. как в массиве 1.

И вот как грамотнее это сделать - и есть вопрос (предположил, что можно массив сортировать, или на стороне БД сортировка, или на уровне js уже существующие элементы)?
0
1640 / 1306 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
25.01.2017, 12:06 7
В корзину добавляется каким образом?
Если в сессионный массив, то выводите, как есть, поскольку элементы выведутся по порядку.
Если корзиной является таблица БД, то используйте ORDER BY и выводите, как надо.
Цитата Сообщение от superstas2007 Посмотреть сообщение
И вот как грамотнее это сделать - и есть вопрос (предположил, что можно массив сортировать, или на стороне БД сортировка, или на уровне js уже существующие элементы)?
Ну это Вам виднее. Как удобнее, так и сортируйте.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2017, 12:06

Как пересобрать RAID 1 на чипсете AMD ?
Проблема: умер хард, стоящий в рейде. Остался второй. Куплено два новых харда. На рейде стояла ось...

Как пересобрать проект в другой версии .NET?
Всем привет. У меня стоит .NET 4.06. Как можно собрать проект в версии 3.5?

Как пересобрать проект в Visual Studio, чтоб в режиме Release можно было по breakpoint ам бегать?
Ну собственно сам вопрос сверху, на даный момент при включение релиза на нажатие F5 :-) выскакивает...

Пересобрать SSH
Всем Привет!!! Обясните пожалоста или ткните в ссилку носом.... Вот есть ситуация настроен роутер...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.