【问题标题】:How do i swap values?我如何交换值?
【发布时间】:2017-03-08 08:04:14
【问题描述】:

我有部门列表,每个部门都有一个向上的按钮和一个向下的按钮

当你点击 UP 按钮时,它会调用函数 up..

Public function actionUP($id, $sort_order){

    $allDeps = Department::model()->findAll($criteria);
    $depArr = array();
    foreach ($allDeps as $department){
        $temp = array();
        $temp['id'] = $department->id;
        $temp['sort_order'] = $department->sort_order;
        $depArr[] = $temp;
    }

现在如果我 var dump 这个数组 depArr 我得到一个数组..

array (size=17)
  0 => 
    array (size=2)
      'id' => string '142' (length=3)
      'sort_order' => string '1' (length=1)
  1 => 
    array (size=2)
      'id' => string '141' (length=3)
      'sort_order' => string '2' (length=1)
  2 => 
    array (size=2)
      'id' => string '144' (length=3)
      'sort_order' => string '5' (length=1)
  3 => 
    array (size=2)
      'id' => string '140' (length=3)
      'sort_order' => string '6' (length=1)
  4 => 
    array (size=2)
      'id' => string '139' (length=3)
      'sort_order' => string '3' (length=1)
  5 => 
    array (size=2)
      'id' => string '143' (length=3)
      'sort_order' => string '4' (length=1)

我有部门列表,位置实际上是sort_order,并且有针对部门的向上和向下按钮,向上按钮调用actionUP,发送up?id=143&sort_order=4

如果用户在位置 4 上单击向上按钮,则其位置应更改为 3,并且位于 3 的部门应转到 4 并且还更新到数据库中..

我使用的是 Yii 1.1 PHP 框架

【问题讨论】:

  • 那么确切的问题是什么?
  • 第一件事是我如何交换值,'sort_order' => string '4' 与数组中的'sort_order' => string '3' 交换..

标签: php sorting yii swap


【解决方案1】:

流程:

  1. 使用搜索

array_search('whateverID', array_column($depArr, 'id'));

  1. 现在您有了索引和排序顺序,您只需要搜索排序顺序 - 现在为 1。

array_search($depArr[x]['sort_order']-1, array_column($depArr, 'sort_order'));

  1. 您现在拥有两个元素的索引,交换排序顺序或取消设置并再次设置。希望这可以帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多