从三维数组中递归获取特定值

Recursively get specific values from three-dimensional array

解决方案

感谢@El_Vanja

if ($WPArray[0]['acf']['actor_reels']) {
$actor_reels = array_column($WPArray[0]['acf']['actor_reels'], 'actor_reel_category');
foreach ($actor_reels as $actor_reel) {
    echo $actor_reel[0];
}}

原问题

我有以下返回数组的代码:

$WPArray = json_decode("$WPVars", true);
$output = $WPArray[0]['acf']['actor_reels'];
print_r($output);

返回:

Array ( 
[0] => Array ( 
    [actor_reel_name] => Voice Reel 
    [actor_reel_category] => Array ( 
        [0] => Voicereel 
         ) 
    [actor_reel_url] => www.example.com
    [actor_reel_image] => www.example.com 
    ) 
    
[1] => Array ( 
    [actor_reel_name] => Show Reel 
    [actor_reel_category] => Array ( 
        [0] => Showreel 
     ) 
    [actor_reel_url] => www.example.com
    [actor_reel_image] => www.example.com
    ) 
)

我的脚本的下一部分是能够将“Voicereel”和“Showreel”值放入一个新数组中(假设它称为 $actor_reel_cats)这样它们就可以在 foreach 语句的其他地方使用,并且每个 actor_reel_category 最终都会显示为网页上的按钮。

    <?php foreach($actor_reel_cats as $reel_cat): ?>
            <div class="f_btn">
                <label><input type="radio" name="fl_radio" value="<?= $reel_cat ?>" />
                    <?= $reel_cat ?>
                </label>
            </div>
    <?php endforeach; ?>

actor_reel_category 值是完全动态的,列表可以随时添加,例如,下一个数组 [2] 可能有 [actor_reel_category] => Dance Reels(或任何其他值作为它们将由最终用户自定义)所以我有点难过。

高级自定义字段人员注意事项:此脚本在 WordPress 之外,因此我无法使用您通常使用的任何功能,例如 get_field_object(),除非我要 import/re-create 或复制它们。

此外,我是 Whosebug 的新手,如果我在这里的帮助请求有任何异常,我深表歉意。

TIA

解决方案

感谢@El_Vanja

if ($WPArray[0]['acf']['actor_reels']) {
$actor_reels = array_column($WPArray[0]['acf']['actor_reels'], 'actor_reel_category');
foreach ($actor_reels as $actor_reel) {
    echo $actor_reel[0];
}}