从字符串的foreach循环中获取数组

Get Array in foreach loop from string

我有一个字符串数组,存在于高级自定义字段组中的每个字符串都应该在 foreach 循环中返回。最终结果应该是所有值的单个数组。

$lubuvna_groups = acf_get_field_groups();

$ArrayDiffs = array_diff($resultsFilesKey, $resultsKey);

foreach($ArrayDiffs as $ArrayDiff) { 
   $resultsFileToImports[] = $ArrayDiff;
}

//$keysToImports = implode(", ",$resultsFileToImports);
$keysToImports = 'group_lubuvna_contact, group_lubuvna_subscriber';
    foreach($resultsFileToImports as $resultsFileToImportsKey) { 
        $keysToImports_filtered = array_filter($lubuvna_groups, function($el) use ($keysToImports) {
                        
            return ( strpos($el['key'], $keysToImports) !== false );

        });
}

以上代码returns 仅当 $keysToImports 中存在一个字符串时。一旦有多个值,它就不起作用。我确定我遗漏了一些东西,但在这里找不到任何解决方案! 它显示空数组:

Array ( )

也许有一种不同的方法如何在没有 strpos 的情况下获取数组?

最终数组应如下所示:

Array ( [0] => Array ( [ID] => 0 [key] => group_lubuvna_contact [title] => ACF Fields [fields] => Array ( ) [location] => Array ( [0] => Array ( [0] => Array ( [param] => post_type [operator] => == [value] => page ) ) ) [menu_order] => 0 [position] => normal [style] => default [label_placement] => top [instruction_placement] => label [hide_on_screen] => [active] => 1 [description] => [local] => json [modified] => 1592781382 [_valid] => 1 ) [1] => Array ( [ID] => 0 [key] => group_lubuvna_subscriber [title] => Lubuvna - Subscriber Fields [fields] => Array ( ) [location] => Array ( [0] => Array ( [0] => Array ( [param] => post_type [operator] => == [value] => post ) ) [1] => Array ( [0] => Array ( [param] => post_type [operator] => == [value] => page ) ) [2] => Array ( [0] => Array ( [param] => post_type [operator] => == [value] => lubuvna_subscriber ) ) ) [menu_order] => 0 [position] => normal [style] => default [label_placement] => top [instruction_placement] => label [hide_on_screen] => [active] => 1 [description] => [local] => json [modified] => 1592781369 [_valid] => 1 ) )

尝试更改:

$keysToImports = 'group_lubuvna_contact', 'group_lubuvna_subscriber';
// then return
return ( strpos($el['key'], $keysToImports) !== false );

$keysToImports = ['group_lubuvna_contact', 'group_lubuvna_subscriber'];
// then return
return in_array($el['key'], $keysToImports);

完整代码更新:


$lubuvna_groups = acf_get_field_groups();

$ArrayDiffs = array_diff($resultsFilesKey, $resultsKey);

foreach($ArrayDiffs as $ArrayDiff) { 
   $resultsFileToImports[] = $ArrayDiff;
}


$keysToImports = ['group_lubuvna_contact', 'group_lubuvna_subscriber'];
foreach($resultsFileToImports as $resultsFileToImportsKey) { 
    $keysToImports_filtered = array_filter($lubuvna_groups, function($el) use ($keysToImports) {
        return in_array($el['key'], $keysToImports);
    });
}