[英]Loop through multidimensional array and write to file for each parent array
我使用以下代码遍历字段组和子字段的多维数组:
<?php
$field_groups = acf_get_field_groups();
foreach( $field_groups as $field_group ) {
$acf_groups = acf_get_fields_by_id( $field_group['ID'] );
foreach($acf_groups as $group) {
echo '<pre>';
var_dump($group);
echo '</pre>';
}
}
这让我这个数组:
array(20) {
["group"]=>
string(6) "button"
["sub_fields"]=>
array(5) {
[0]=>
array(23) {
["name"]=>
string(11) "button_text"
}
[1]=>
array(19) {
["name"]=>
string(11) "button_link"
}
}
}
array(20) {
["group"]=>
string(2) "h1"
["sub_fields"]=>
array(8) {
[0]=>
array(23) {
["name"]=>
string(9) "font_size"
}
[1]=>
array(26) {
["name"]=>
string(15) "font_size_units"
}
}
}
我想做的是为每个$group
数组(分别为'button'和'h1')输出一个带有sub_field值的文件。
因此,举例来说,在这种情况下,我想得到2个文件:
button.php
h1.php
button.php
将具有:
button_text
button_link
h1.php
将具有:
font_size
font_size_units
我可以在该循环中将两个文件打印出来,但是h1.php
文件包含button
sub_fields
值,因此:
button_text
button_link
font_size
font_size_units
如何按父数组拆分文件,然后为每个组打印出带有各自sub_fields
值的文件?
弄清楚了...需要一个附加的grouped
数组,以嵌套数组中的键对元素进行grouped
,在本例中$sub['label']
。
这不是漂亮,也不是最优雅,但可以。
<?php
$field_groups = acf_get_field_groups();
foreach( $field_groups as $field_group ) {
$acf_groups = acf_get_fields_by_id( $field_group['ID'] );
$grouped = array();
foreach ($acf_groups as $group) {
$subs = $group['sub_fields'];
foreach($subs as $sub) {
$grouped[$group['label']][] = $sub['label'];
}
foreach ($grouped as $key => $items) {
// print by group here.
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.