Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 - Fatal编程技术网

Php 使用带条件的路径进行循环

Php 使用带条件的路径进行循环,php,Php,我正在创建一个基于层级的转诊系统。在其中,我将父路径存储在一个名为path的列中,这样我就可以在一个不使用递归的查询中轻松找到父路径 在此情况下,每个用户最多只能有5个转介。我的问题是,我有一个佣金制度,将新用户的钱分成不同级别的佣金。例如,新用户的直接赞助者将获得200卢比的佣金,而先前赞助者的直接赞助者将获得100卢比的佣金,并持续10个级别 因此,在路径中,我可以获得所有家长及其对应家长的id。路径示例/1/2/3/4/44/-因此从这个路径我们可以理解44是直接的父,4是44的父,3是4

我正在创建一个基于层级的转诊系统。在其中,我将父路径存储在一个名为path的列中,这样我就可以在一个不使用递归的查询中轻松找到父路径

在此情况下,每个用户最多只能有5个转介。我的问题是,我有一个佣金制度,将新用户的钱分成不同级别的佣金。例如,新用户的直接赞助者将获得200卢比的佣金,而先前赞助者的直接赞助者将获得100卢比的佣金,并持续10个级别

因此,在路径中,我可以获得所有家长及其对应家长的id。路径示例/1/2/3/4/44/-因此从这个路径我们可以理解44是直接的父,4是44的父,3是4的父,2是3的父,1是2的父

所以我的问题是,我的佣金是这样的,1-200级,2-100级,3-50级,4-30级,5-10级等等

如何将这些佣金循环给那些家长?我真的不能理解,所以我没有写任何代码。请帮忙


如何向使用路径找到的用户更新各种佣金?

正如前面提到的注释,您可以使用explode将字符串拆分为数组。有了它,你可以迭代它并计算佣金

稍微精简的代码,我觉得更容易阅读

<?php
$input = '/1/2/3/4/44/';

// Split your string into an array, removes empty values, and then reoders the keys to start from 0.
$levels = array_values(array_filter(explode('/', $input)));

// Define your levels and pricing
$pricing = [
    200,
    100,
    50,
    30,
    10
];

echo 'You get ₹' . array_sum(array_intersect_key($pricing, $levels));
// Output: You get ₹390

请看explode函数:。您提供了一个分隔符和一个字符串,在本例中,分隔符是“/”。这将从字符串中创建一个数组,该数组可以循环通过。是的,我知道,但是如何切换每种级别。寄确切的佣金?
<?php
$input = '/1/2/3/4/44/';

// Split your string into an array, removes empty values, and then reoders the keys to start from 0.
$levels = array_values(array_filter(explode('/', $input)));

// Define your levels and pricing
$pricing = [
    200,
    100,
    50,
    30,
    10
];

echo 'You get ₹' . array_sum(array_intersect_key($pricing, $levels));
// Output: You get ₹390