第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php 二維數組如何按一維數組里order值進行排序,同時又不改變原來order值相同的數組順序

php 二維數組如何按一維數組里order值進行排序,同時又不改變原來order值相同的數組順序

PHP
胡說叔叔 2019-03-08 07:48:19
php 二維數組如何按一維數組里order值進行排序,同時又不改變原來order值相同的數組順序 1、先按照order值進行分組,但它們還要保持之前的順序2、然后分組按照order值從小到大排序3、再把這些數組組裝在一個二維數組里 PS:把下面的第一個二維數組弄成第二個的那種格式就可以了 array(18) { [0] => array(3) { ["id"] => string(5) "ele_0" ["order"] => string(1) "1" ["title"] => NULL } [1] => array(3) { ["id"] => string(5) "ele_1" ["order"] => string(1) "1" ["title"] => NULL } [2] => array(3) { ["id"] => string(5) "ele_2" ["order"] => string(1) "1" ["title"] => NULL } [3] => array(3) { ["id"] => string(5) "ele_4" ["order"] => string(1) "3" ["title"] => NULL } [4] => array(3) { ["id"] => string(5) "ele_5" ["order"] => string(1) "2" ["title"] => NULL } [5] => array(3) { ["id"] => string(5) "ele_6" ["order"] => string(1) "2" ["title"] => NULL } [6] => array(3) { ["id"] => string(5) "ele_7" ["order"] => string(1) "2" ["title"] => NULL } [7] => array(3) { ["id"] => string(5) "11329" ["order"] => string(1) "2" ["title"] => NULL } [8] => array(3) { ["id"] => string(5) "11330" ["order"] => string(1) "7" ["title"] => NULL } [9] => array(3) { ["id"] => string(4) "8252" ["order"] => string(1) "1" ["title"] => NULL } } array(18) { [0] => array(3) { ["id"] => string(5) "ele_0" ["order"] => string(1) "1" ["title"] => NULL } [1] => array(3) { ["id"] => string(5) "ele_1" ["order"] => string(1) "1" ["title"] => NULL } [2] => array(3) { ["id"] => string(5) "ele_2" ["order"] => string(1) "1" ["title"] => NULL } [9] => array(3) { ["id"] => string(4) "8252" ["order"] => string(1) "1" ["title"] => NULL } [4] => array(3) { ["id"] => string(5) "ele_5" ["order"] => string(1) "2" ["title"] => NULL } [5] => array(3) { ["id"] => string(5) "ele_6" ["order"] => string(1) "2" ["title"] => NULL } [6] => array(3) { ["id"] => string(5) "ele_7" ["order"] => string(1) "2" ["title"] => NULL } [7] => array(3) { ["id"] => string(5) "11329" ["order"] => string(1) "2" ["title"] => NULL } [3] => array(3) { ["id"] => string(5) "ele_4" ["order"] => string(1) "3" ["title"] => NULL } [8] => array(3) { ["id"] => string(5) "11330" ["order"] => string(1) "7" ["title"] => NULL } }
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

$arr[] = array('order' => 1, 'id' => 'ele_0');
$arr[] = array('order' => 1, 'id' => 'ele_2');
$arr[] = array('order' => 1, 'id' => 'ele_1');
$arr[] = array('order' => 3, 'id' => 'ele_4');
$arr[] = array('order' => 2, 'id' => 'ele_6');
$arr[] = array('order' => 2, 'id' => 'ele_5');


foreach ($arr as $key => $row) {
    $order[$key]  = $row['order'];
    $arr[$key]['sort'] = $key;        //要保證其他順序和原來一樣,只能再加一個字段標識原來的順序
    $sort[$key] = $key;
}

array_multisort($order, SORT_ASC, $sort, SORT_ASC , $arr);
print_r($arr);
查看完整回答
反對 回復 2019-03-18
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

你可以將key和value['id']互換,先將key放入到value中,排序結束后再替換回來

查看完整回答
反對 回復 2019-03-18
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

實際跟一維數組排序是一個道理,隨便應用一個排序算法,就能實現你要的結果。

具體范例

對以下數組進行排序:

$arr = [
    [
        'id' => 'ele_0' , 
        'order' => 60 , 
    ] , 
    [
        'id' => 'ele_1' , 
        'order' => 30 , 
    ] , 
    [
        'id' => 'ele_2' , 
        'order' => 50 , 
    ] ,     
];

使用 選擇排序 算法:

for ($i = 0; $i < count($arr); ++$i)
{
    $index = $i;
    for ($n = $i + 1; $n < count($arr); ++$n)
    {
        $one = $arr[$index];
        $two = $arr[$n];
        // 降序排序
        if ($one['order'] < $two['order']) {
            $index = $n;
        }
    }
    if ($index != $i) {
        $tmp = $arr[$index];
        $arr[$index] = $arr[$i];
        $arr[$i] = $tmp;
    }
}
// 查看排序后的結果
print_r($arr);
查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關注
  • 516 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號