我有以下数据数组:
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
有人能指出正确的方向开始吗?
答案 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;
}