写一个PHP递归函数 查询每一级的结果 最后返回一个数组
时间: 2024-02-06 21:11:50 浏览: 212
好的,下面是一个简单的 PHP 递归函数示例,用于查询每一级结果,并返回一个包含所有结果的数组。
```php
function getResults($data, $level = 1) {
$results = array();
foreach ($data as $item) {
if ($item['level'] == $level) {
$results[] = $item['result'];
} elseif ($item['level'] > $level) {
$subResults = getResults($item['subItems'], $level+1);
$results = array_merge($results, $subResults);
}
}
return $results;
}
```
这个函数接受一个包含数据项、级别和子项的数组和一个标题级别作为参数,并使用递归查询每一级结果。它首先遍历数组中的所有项,如果项的级别等于指定的级别,则将该项的结果添加到结果数组中。如果项的级别大于指定级别,则递归调用自身来查询它的子项的结果,并将它们合并到结果数组中。最后,它返回包含所有级别结果的数组。
相关问题
写一个PHP递归函数 查询每一级的标题 返回一个每一级的标题数组
好的,下面是一个简单的 PHP 递归函数示例,用于查询每一级的标题,并返回一个包含每一级标题的数组。
```php
function getHeadings($html, $level = 1) {
$dom = new DOMDocument();
@$dom->loadHTML($html);
$headings = array();
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//h' . $level);
foreach ($nodes as $node) {
$headings[] = $node->nodeValue;
$headings = array_merge($headings, getHeadings($html, $level+1));
}
return $headings;
}
```
这个函数接受一个 HTML 字符串和标题级别作为参数,并使用递归来查询每一级标题。它使用 DOM 和 XPath 来查找所有给定级别的标题节点,并将它们的文本值添加到一个数组中。然后它递归调用自身,以查询下一级标题,并将结果合并到数组中。最后,它返回包含所有级别标题的数组。
PHP数组快速排序函数怎么写,举例
请问您需要使用哪种算法对PHP数组进行快速排序?常见的算法有快速排序、归并排序、堆排序等。以下是使用快速排序算法对PHP数组进行排序的示例代码:
```
function quick_sort($arr) {
$len = count($arr);
if ($len <= 1) {
return $arr;
}
$pivot = $arr[0]; // 中间数
$left_arr = array();
$right_arr = array();
for ($i=1; $i<$len; $i++) {
if ($arr[$i] < $pivot) {
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = quick_sort($left_arr); //递归排序左侧
$right_arr = quick_sort($right_arr); //递归排序右侧
return array_merge($left_arr, array($pivot), $right_arr);
}
$arr = array(10, 5, 23, 8, 40);
echo '排序前:' . implode(',', $arr) . PHP_EOL;
$arr = quick_sort($arr);
echo '排序后:' . implode(',', $arr) . PHP_EOL;
```
以上代码将给定的数组进行分割排序,直到分割成不可再分的单个元素,然后将排序后的子数组合并起来。这里使用递归实现了快速排序算法。
阅读全文