Перестановка многомерного массива в порядке DES C, внутренний многомерный массив в DES C, но внешний родительский массив не работает - PullRequest
0 голосов
/ 07 февраля 2020

Рабочий дочерний массив находится здесь с родительским многомерным массивом. Здесь дочерний массив запускается как в порядке DES C.

 [
    {
        "variation_id": "23",
        "variation_price": "200.00"
    },
    {
        "variation_id": "25",
        "variation_price": "100.00"
    }
],
[
    {
        "variation_id": "31",
        "variation_price": "150.00"
    },
    {
        "variation_id": "30",
        "variation_price": "80.00"
    }
],
[
    {
        "variation_id": "45",
        "variation_price": "300.00"
    },
    {
        "variation_id": "44",
        "variation_price": "200.56"
    }
]

И хотел бы работать как в порядке, как, Спасибо означает целый многомерный ( родительский и дочерний массив) работают в порядке DES C.

[
    [
        {
            "variation_id": "45",
            "variation_price": "300.00"
        },
        {
            "variation_id": "44",
            "variation_price": "200.56"
        }
    ],
    [
        {
            "variation_id": "23",
            "variation_price": "200.00"
        },
        {
            "variation_id": "25",
            "variation_price": "100.00"
        }
    ],
    [
        {
            "variation_id": "31",
            "variation_price": "150.00"
        },
        {
            "variation_id": "30",
            "variation_price": "80.00"
        }
    ]

]

Я написал запрос для первого, чтобы получить дочерний массив как DES C, чтобы получить результаты для запроса ->

$response  = $find_variation_array;
$sort = array();
foreach($response as $k=>$v) {
    $sort['variation_price'][$k] = $v['variation_price'];
}
array_multisort($sort['variation_price'], SORT_DESC, $response);

Не работает для вторых шагов, который является родительским массивом.
Может кто-нибудь любезно поделится со мной любой идеей, как получить весь родительский и дочерний многомерный массив в порядке DES C. Заранее спасибо за Вашу добрую долю знаний.

1 Ответ

0 голосов
/ 08 февраля 2020

Предполагая, что ваш массив выглядит так:

[ 
    [
        [
            "variation_id" => "23",
            "variation_price" => "200.00"
        ],
        [
            "variation_id" => "25",
            "variation_price" => "100.00"
        ]
    ],
    [
        [
            "variation_id" => "31",
            "variation_price" => "150.00"
        ],
        [
            "variation_id" => "30",
            "variation_price" => "80.00"
        ]
    ],
    [
        [
            "variation_id" => "45",
            "variation_price" => "300.00"
        ],
        [
            "variation_id" => "44",
            "variation_price" => "200.56"
        ]
    ]
]

Тогда это может быть способ решить:

<code>$test_array = 
[ 
    [
        [
            "variation_id" => "23",
            "variation_price" => "200.00"
        ],
        [
            "variation_id" => "25",
            "variation_price" => "100.00"
        ]
    ],
    [
        [
            "variation_id" => "31",
            "variation_price" => "150.00"
        ],
        [
            "variation_id" => "30",
            "variation_price" => "80.00"
        ]
    ],
    [
        [
            "variation_id" => "45",
            "variation_price" => "300.00"
        ],
        [
            "variation_id" => "44",
            "variation_price" => "200.56"
        ]
    ]
];


$sort_array_order = array();
foreach ($test_array as $test_key => $test_value) {

    $temp_sumation_of_variation_price = 0;

    foreach ($test_value as $key => $value) {
        $temp_sumation_of_variation_price += $value['variation_price'];
    }

    $sort_array_order[] = $temp_sumation_of_variation_price;
}

array_multisort($sort_array_order, SORT_DESC, $test_array);

echo "<pre>";print_r($test_array);echo "
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...