使用PHP递归计数数组

时间:2015-10-13 12:44:06

标签: php arrays recursion

我有以下数据数组:

id parent_id completed 431 NULL 0 434 431 1 435 431 1 436 431 0 437 431 1 440 431 0 441 440 1 432 NULL 0 438 432 1 433 NULL 0 439 NULL 1

并且我正在尝试编写一个可以传递id的函数,它将遍历数组并计算多个父项的所有已完成值,例如

我传递了一个431的id,该函数从以下行添加了completed的值。

id parent_id completed 431 NULL 0 434 431 1 435 431 1 436 431 0 437 431 1 440 431 0 441 440 1

有人能指出正确的方向开始吗?

2 个答案:

答案 0 :(得分:0)

function countArr($id, $array){   
$returnArr = array();
 foreach($array as $row){
      if($row['parent_id'] == $id){
         $returnArr[] = $row
       }
 }
return $returnArr
}

您将传递ID和数组进行搜索。 评论你还想做什么。

答案 1 :(得分:0)

我想我用这个来解决它,只是测试它,任何人都可以看到任何陷阱吗?

public static function calculateCompletion($content, $id)
{
    $count = 0;
    foreach ($content as $row) {
        if ($row->id == $id) {
            if(!is_null($row->completed)){
                $count++;
            }
        }
        if ($row->parent_id == $id) {
                $count = $count + self::calculateCompletion($content, $row->id);
            }
        }
    return $count;
}