从多维数组制作面包屑
Make breadcrumb from multidimensional array
Array
(
[0] => Array
(
[id] => 68
[cat_name] => Business Insurance
[cat_slug] => business-insurance
[is_parent] => 67
[parent] => Array
(
[0] => Array
(
[id] => 67
[cat_name] => Insurance
[cat_slug] => insurance
[is_parent] => 65
[parent] => Array
(
[0] => Array
(
[id] => 65
[cat_name] => Finance and Investment
[cat_slug] => finance-and-investment
[is_parent] => 47
[parent] => Array
(
[0] => Array
(
[id] => 47
[cat_name] => Business & Economy
[cat_slug] => business-economy
[is_parent] => 0
)
)
)
)
)
)
)
)
我需要 Codeignitor 的递归函数,它将上面的数组显示为商业与经济 -> 金融和投资 -> 保险 -> 商业保险作为面包屑。请帮忙。
没检查过,可能有用
function processArray($config) {
$firstElement = $config[0];
$result = '';
if (isset($firstElement['parent'])) {
$result .= processArray($firstElement['parent']) . ' / ';
}
$result .= $firstElement['cat_name']; // Probably want to wrap it in a-tag with href
return $result;
}
更新:获取第一个元素
我会使用这样的递归循环,这将创建一个面包屑数组。
function breadcrumb_recursion($arr, $crumbs = []) {
$arr = $arr[0];
if (!empty($arr['parent'])) {
$crumbs = breadcrumb_recursion($arr['parent']);
}
$crumbs[] = $arr['cat_name'];
return $crumbs;
}
结果
Array
(
[0] => Business & Economy
[1] => Finance and Investment
[2] => Insurance
[3] => Business Insurance
)
现在,您可以使用 implode()
.
轻松地在您的页面上回应此内容
echo implode(' / ', $breadcrumb_return);
结果
Business & Economy / Finance and Investment / Insurance / Business Insurance
Array
(
[0] => Array
(
[id] => 68
[cat_name] => Business Insurance
[cat_slug] => business-insurance
[is_parent] => 67
[parent] => Array
(
[0] => Array
(
[id] => 67
[cat_name] => Insurance
[cat_slug] => insurance
[is_parent] => 65
[parent] => Array
(
[0] => Array
(
[id] => 65
[cat_name] => Finance and Investment
[cat_slug] => finance-and-investment
[is_parent] => 47
[parent] => Array
(
[0] => Array
(
[id] => 47
[cat_name] => Business & Economy
[cat_slug] => business-economy
[is_parent] => 0
)
)
)
)
)
)
)
)
我需要 Codeignitor 的递归函数,它将上面的数组显示为商业与经济 -> 金融和投资 -> 保险 -> 商业保险作为面包屑。请帮忙。
没检查过,可能有用
function processArray($config) {
$firstElement = $config[0];
$result = '';
if (isset($firstElement['parent'])) {
$result .= processArray($firstElement['parent']) . ' / ';
}
$result .= $firstElement['cat_name']; // Probably want to wrap it in a-tag with href
return $result;
}
更新:获取第一个元素
我会使用这样的递归循环,这将创建一个面包屑数组。
function breadcrumb_recursion($arr, $crumbs = []) {
$arr = $arr[0];
if (!empty($arr['parent'])) {
$crumbs = breadcrumb_recursion($arr['parent']);
}
$crumbs[] = $arr['cat_name'];
return $crumbs;
}
结果
Array
(
[0] => Business & Economy
[1] => Finance and Investment
[2] => Insurance
[3] => Business Insurance
)
现在,您可以使用 implode()
.
echo implode(' / ', $breadcrumb_return);
结果
Business & Economy / Finance and Investment / Insurance / Business Insurance