PHP删除默认数组
我有以下代码:PHP删除默认数组,php,arrays,Php,Arrays,我有以下代码: <?php //get tasklist array from POST $task_list = filter_input(INPUT_POST, 'tasklist', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); if ($task_list === NULL) { $task_list = array(); $task_list[] = 'Write chapter'; $task_list
<?php
//get tasklist array from POST
$task_list = filter_input(INPUT_POST, 'tasklist', FILTER_DEFAULT,
FILTER_REQUIRE_ARRAY);
if ($task_list === NULL) {
$task_list = array();
$task_list[] = 'Write chapter';
$task_list[] = 'Edit chapter';
$task_list[] = 'Proofread chapter';
}
//get action variable from POST
$action = filter_input(INPUT_POST, 'action');
//initialize error messages array
$errors = array();
//process
switch( $action ) {
case 'Add Task':
$new_task = filter_input(INPUT_POST, 'newtask');
if (empty($new_task)) {
$errors[] = 'The new task cannot be empty.';
} else {
// $task_list[] = $new_task;
array_push($task_list, $new_task);
}
break;
case 'Delete Task':
$task_index = filter_input(INPUT_POST, 'taskid', FILTER_VALIDATE_INT);
if ($task_index === NULL || $task_index === FALSE) {
$errors[] = 'The task cannot be deleted.';
} else {
unset($task_list[$task_index]);
$task_list = array_values($task_list);
}
break;
case 'Delete All Task' :
if (empty($task_list)) {
$errors[] = 'The list is already empty.';
} else {
foreach ($task_list as $key => $value) {
unset($task_list[$key]);
}
$task_list = array_values($task_list);
}
break;
case 'Modify Task':
$task_index = filter_input(INPUT_POST, 'taskid', FILTER_VALIDATE_INT);
if ($task_index === NULL || $task_index === FALSE) {
$errors[] = 'The task cannot be modified.';
} else {
$task_to_modify = $task_list[$task_index];
}
break;
case 'Save Changes':
$i = filter_input(INPUT_POST, 'modifiedtaskid', FILTER_VALIDATE_INT);
$modified_task = filter_input(INPUT_POST, 'modifiedtask');
if (empty($modified_task)) {
$errors[] = 'The modified task cannot be empty.';
} else if($i === NULL || $i === FALSE) {
$errors[] = 'The task cannot be modified.';
} else {
$task_list[$i] = $modified_task;
$modified_task = '';
}
break;
case 'Cancel Changes':
$modified_task = '';
break;
case 'Promote Task':
$task_index = filter_input(INPUT_POST, 'taskid', FILTER_VALIDATE_INT);
if ($task_index === NULL || $task_index === FALSE) {
$errors[] = 'The task cannot be promoted.';
} else if ($task_index == 0) {
$errors[] = 'You can\'t promote the first task.';
} else {
// get the values for the two indexes
$task_value = $task_list[$task_index];
$prior_task_value = $task_list[$task_index-1];
// swap the values
$task_list[$task_index-1] = $task_value;
$task_list[$task_index] = $prior_task_value;
break;
}
case 'Sort Tasks':
sort($task_list);
break;
}
include('task_list.php');
?>
默认值列表如下所示:
写一章
编辑章节
校对章节
当我尝试使用“全部删除”按钮时,会显示“全部删除”。当我在删除所有内容后使用“添加任务”按钮时,它会再次使用所有这些默认值添加我的新任务
如何使默认列表仅在站点首次加载时显示?我试图删除默认的加载值,但这里有一个循环,使它们不断重新出现。非常感谢您的帮助。我想我已经解决了您的问题。。。这是一个不寻常的例子,因为我认为它不实用 我一直在问自己,“页面的第一次加载和发生事情后的每一次加载有什么不同”,我得到的答案是$action。如果只在没有“$action”的情况下重新写入数组中的元素,则只在页面的第一次加载时重新写入元素。因此,我将开始的if语句分为两部分,并在上面添加了$action的INPUT_帖子,以便if语句可以进行比较
$task_list = filter_input(INPUT_POST, 'tasklist',
FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
$action = filter_input(INPUT_POST, 'action');
if ($task_list === NULL) {
$task_list = array();
}
if ($action == NULL) {
$task_list[] = 'Write chapter';
$task_list[] = 'Edit chapter';
$task_list[] = 'Proofread chapter';
}
如何将$task_list设置为初始值,而不是默认值?您可能需要存储一个cookie才能执行类似的一次性操作。有一种方法可以在没有cookie的情况下执行,但我不确定如何执行。我们的下一个任务可能是学习Cookie,但这一任务我们必须在没有Cookie的情况下完成。localStorage?是否将用户ip(用户代理)保存到数据库?这并不总是准确的,因为你可以欺骗它。这正是我需要的。非常感谢。