简体   繁体   English

多维数组按 DESC 顺序重新排列,内部多维数组在 DESC 中,但外部父数组不起作用

[英]Multidimensional Array rearrange by DESC order , internal Multidimensional array is in DESC but outer parent array not work

Working child array is here with parent multidimensional array.Here child array is run as in DESC order.工作子数组在这里与父多维数组一起使用。这里子数组按 DESC 顺序运行。

 [
    {
        "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"
    }
]

And would like to work as in order like , Thank means whole multidimensional ( parent and child array ) work in DESC order.并希望按顺序工作,谢谢意味着整个多维(父和子数组)按 DESC 顺序工作。

[
    [
        {
            "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"
        }
    ]

]

I have written query for first to get child array as DESC order to get results for Query ->我已经编写了第一个查询以获取子数组作为 DESC 顺序以获得查询的结果 ->

$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);

Not working for second steps , which is parent array .不适用于第二个步骤,即父数组。
Can any one kindly share me any idea how to get whole parent and child multidimensional array in DESC order more.任何人都可以与我分享如何以DESC顺序获取整个父子多维数组的任何想法。 Thanks in advance for your kind knowledge share.在此先感谢您的知识分享。

Assuming your array is like this:假设你的数组是这样的:

[ 
    [
        [
            "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"
        ]
    ]
]

Then it may be an way to solve:那么它可能是一种解决方法:

$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 "</pre>";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM