【问题标题】:Specific order for multidimensional associative array多维关联数组的具体顺序
【发布时间】:2017-06-16 05:31:51
【问题描述】:

我有一个包含超过 2 列的多维关联数组。

我正在尝试创建一个函数,该函数使用两个特定列的值对数组进行排序。例如,如果数组中位置 4 的 value_column_3 ('hangs_from') 取决于数组中位置 0 的 value_column_1 ('old_id'),我必须将数组的位置 4 移动到位置 0 之后。

这是一种冒泡排序算法。

如何从这个多维关联数组中访问特定位置以便进行比较?

【问题讨论】:

  • 但是,例如,您如何具体比较第五和第六位?我的意思是例如尝试使用冒泡排序: for(i=2; i 数组(位置 j)); ...某事 } }
  • 密钥 1038 的数组在最后一个所需的数组中消失了吗?
  • @BunkerBoy 抱歉我错过了这个值
  • 还有一件事,为什么键 1034 的数组在 1037 之后,因为 1034 在数组中排在第一位?

标签: php arrays multidimensional-array associative-array


【解决方案1】:

这样的事情应该可以工作。

$sortedArray = [];
foreach($q1 as $key => $value){
    $tempData = [];
    foreach($q1 as $key2 => $value2){
        if($value2['hangs_from'] === $key){
            $tempData[$value2['old_id']] = $value2;
            unset($q1[$value2['old_id']]);
        }
    }
    uasort($tempData, function($a, $b){
        return ($a['old_id'] < $b['old_id']) ? -1 : 1;
    });
    $sortedArray[$key] = $value;
    unset($q1[$value['old_id']]);
    $sortedArray = $sortedArray + $tempData;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多