Php 将数组元素向上移动一个位置

Php 将数组元素向上移动一个位置,php,arrays,Php,Arrays,我需要帮助了解如何使用PHP将数组项向上移动一个位置。到目前为止,PHP如下所示: <?php $task_list = array(); $task_list[] = 'Write chapter'; $task_list[] = 'Edit chapter'; $task_list[] = 'Proofread chapter'; switch( $_POST['action'] ) { case 'Promote Task': //This is where I'm stuc

我需要帮助了解如何使用PHP将数组项向上移动一个位置。到目前为止,PHP如下所示:

<?php
$task_list = array();
$task_list[] = 'Write chapter';
$task_list[] = 'Edit chapter';
$task_list[] = 'Proofread chapter';

switch( $_POST['action'] ) {
   case 'Promote Task':
//This is where I'm stuck.
?>

您只需要交换两行(所选任务和上面的任务)。所以如果你的索引总是0,1,2,3,…,n:

$selectedRow = $_POST['taskid'];
if ($selectedRow === 0) {
    echo 'Already top-priority';
} else {
    $rowAbove = $taks_list[$selectedRow - 1];
    $task_list[$selectedRow - 1] = $taks_list[$selectedRow];
    $task_list[$selectedRow] = $rowAbove;

    // Or without help-variable, but less readable
    list($task_list[$selectedRow - 1], $task_list[$selectedRow])
        = array($task_list[$selectedRow], $task_list[$selectedRow - 1]);
}

我明白你的意思了,我只需要换两排。但是,此代码仅忽略选定索引中两个元素的值。不过谢谢你。
$selectedRow = $_POST['taskid'];
if ($selectedRow === 0) {
    echo 'Already top-priority';
} else {
    $rowAbove = $taks_list[$selectedRow - 1];
    $task_list[$selectedRow - 1] = $taks_list[$selectedRow];
    $task_list[$selectedRow] = $rowAbove;

    // Or without help-variable, but less readable
    list($task_list[$selectedRow - 1], $task_list[$selectedRow])
        = array($task_list[$selectedRow], $task_list[$selectedRow - 1]);
}