二维if / then矩阵

用户名

我必须根据两个变量($x$y采取措施下满足这些需求,但不是很可读的,它是不是真的明显,$x/$y1/4做同样的事情$x/$y5/3从可读性和可维护性的角度来看,编写此代码的最佳方法是什么?当我特别要求一个PHP解决方案时,希望该解决方案可以扩展到其他语言,例如JavaScript。

<?php
  switch($x) {
      case 1: case 2: case 3:
      switch($y) {
          case 1: case 2:
          doTask(1);
          break;
          case 3: case 4:
          doTask(2);
          break;
          default:
          doTask(3);
      }
      break;
      case 4: case 5:
      switch($y) {
          case 1: case 2: case 4:
          doTask(4);
          break;
          case 3:
          doTask(2);
          break;
          default:
          doTask(2);
      }
      break;
      default:
      switch($y) {
          case 1:
          doTask(6);
          break;
          case 2: case 3: case 4:
          doTask(2);
          break;
          default:
          doTask(3);
      }
  }
?>
不要惊慌

如果您创建了一个数组来映射它,它将像这样工作:

$task_x = [
   1  => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
   2  => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
   3  => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
   4  => [1 => 4, 2 => 4, 3 => 2, 4 => 4, 'd' => 2],
   5  => [1 => 4, 2 => 4, 3 => 2, 4 => 4, 'd' => 2],
  'd' => [1 => 6, 2 => 2, 3 => 2, 4 => 2, 'd' => 3]
];

// PHP 7        
$task_y = $task_x[$x] ?? $task_x['d'];
$task_n = $task_y[$y] ?? $task_y['d'];

// or PHP 5
//$task_y = isset($task_x[$x]) ? $task_x[$x] : $task_x['d'];
//$task_n = isset($task_y[$y]) ? $task_y[$y] : $task_y['d'];

doTask($task_n);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从矩阵制作二维二维图

来自分类Dev

在numpy中组合二维矩阵

来自分类Dev

二维矩阵的眼睛和Kron

来自分类Dev

libgdx中的二维矩阵

来自分类Dev

Numpy在二维矩阵上的where()

来自分类Dev

Bash-乘二维矩阵

来自分类Dev

C ++制作二维布尔矩阵

来自分类Dev

numpy:二维数组矩阵的大小?

来自分类Dev

以二维数组显示矩阵

来自分类Dev

numpy矩阵必须是二维误差

来自分类Dev

Numpy在二维矩阵上的where()

来自分类Dev

C ++制作二维布尔矩阵

来自分类Dev

二维矩阵的眼睛和Kron

来自分类Dev

在numpy中组合二维矩阵

来自分类Dev

在java中打印二维矩阵

来自分类Dev

将二维单元矩阵转换为二维数值矩阵

来自分类Dev

矩阵的二维二维曲面图细节不够

来自分类Dev

如何从n维矩阵中获得n维二维子矩阵?

来自分类Dev

将坐标向量转换为numpy二维矩阵

来自分类Dev

在二维矩阵上使用std :: max_element

来自分类Dev

递归地找到二维矩阵中的元素

来自分类Dev

二维数组的Numpy-get邻居矩阵

来自分类Dev

Matlab中的按行二维矩阵交集

来自分类Dev

数据向量列表的快速滚动总和(二维矩阵)

来自分类Dev

二维矩阵排序方法,如何使该方法通用?

来自分类Dev

Java中二维矩阵乘法的问题

来自分类Dev

R中的二维数组列表上的矩阵乘法

来自分类Dev

R-数据帧到二维值的矩阵?

来自分类Dev

使用R附加3个二维矩阵