Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP构建定价逻辑_Php_Logic - Fatal编程技术网

使用PHP构建定价逻辑

使用PHP构建定价逻辑,php,logic,Php,Logic,希望你们有一个充满彩虹和玫瑰的美好的一天 好的,好的。。我要说的是: 我有一个函数,它接受多个参数,并根据这些参数计算产品的价格。以下是一个概念性示例: public function getPrice( $params ) { // black magic goes here return $price; } 这些参数包括: $params[width]其范围从10-72英寸 $params[高度]范围为10-44英寸 (实际上有更多的参数,但为了简单起见,我将它们排除在外)

希望你们有一个充满彩虹和玫瑰的美好的一天

好的,好的。。我要说的是:

我有一个函数,它接受多个参数,并根据这些参数计算产品的价格。以下是一个概念性示例:

public function getPrice( $params ) {
    // black magic goes here
    return $price;
}
这些参数包括:

  • $params[width]
    其范围从10-72英寸
  • $params[高度]
    范围为10-44英寸
  • (实际上有更多的参数,但为了简单起见,我将它们排除在外)

    现在,我在Excel中有一个表(类似于真值表),其中的行表示
    宽度
    ,列表示
    高度
    。相应单元格中的值为
    价格


    如何在PHP中最好地实现这种定价策略?我原以为嵌套的
    if
    语句会起作用,但在第10次
    if
    之后就累了。帮助?

    您可以将Excel中的信息存储在二维数组中

    然后,您可以根据宽度/高度通过以下操作查找价格:

    返回$prices[行][列]

    在您的例子中,行是宽度,列是高度

    需要做一些额外的工作,因为范围从10开始,所以需要从输入的值中减去10

    即:


    返回$prices[width-10][height-10]

    您可以将Excel中的信息存储在二维数组中

    然后,您可以根据宽度/高度通过以下操作查找价格:

    返回$prices[行][列]

    在您的例子中,行是宽度,列是高度

    需要做一些额外的工作,因为范围从10开始,所以需要从输入的值中减去10

    即:



    返回$prices[width-10][height-10]

    为什么不把所有的数据都放到数据库中呢?是否有一行包含每个参数的所有值和价格?离这里只有一个查询

    你为什么不把所有的数据都放进数据库呢?是否有一行包含每个参数的所有值和价格?离这里只有一个查询

    根据Excel中的表的外观,您可以将其转换为PHP数组,遍历该数组,并获取相应的price@Pekka웃 62列x 34行。那是一个大阵列!大的有2108个元素?不是真的,它不会给你的记忆带来任何问题。@Pekka웃 大小显然是相对的:)根据Excel中的表的外观,您可以将其转换为PHP数组,遍历该数组,并获取相应的price@Pekka웃 62列x 34行。那是一个大阵列!大的有2108个元素?不是真的,它不会给你的记忆带来任何问题。@Pekka웃 大小显然是相对的:)所有62列x 34行?那是一个大阵列@FloatingRock可能是的,这正是需要最少设置的解决方案。正如另一条评论所说,这通常由数据库处理。然而,对于一个程序来说,62x34并不算大,手动输入可能是一件痛苦的事情(尽管你只需要做一次)。使用数组来实现这一点根本不是问题。如果编辑PHP文件足够方便,并且数据不会更改,那么设置数据库就没有意义了often@MatthewMcGovern明白了。那我就去伸手指,然后再做这个壮举!所有62列x 34行?那是一个大阵列@FloatingRock可能是的,这正是需要最少设置的解决方案。正如另一条评论所说,这通常由数据库处理。然而,对于一个程序来说,62x34并不算大,手动输入可能是一件痛苦的事情(尽管你只需要做一次)。使用数组来实现这一点根本不是问题。如果编辑PHP文件足够方便,并且数据不会更改,那么设置数据库就没有意义了often@MatthewMcGovern明白了。那我就去伸手指,然后再做这个壮举!
    $prices = array(  // Columns --
                      array(1,2,3), // Rows 
                      array(4,5,6), //  |
                      array(7,8,9)  //  |
                   );