0

複数の配列にアクセスする必要があります。問題は、以下のように必要な配列に到達したときに発生します。キーが毎回異なるため、従来の方法ではアクセスできません。

私は次の配列を扱っています:

Array
(
    [oe_schedule_charge] => Array
        (
            [617cdb2797153d6fbb03536d429a525b] => Array
                (
                    [schedule] => 
                    [args] => Array
                        (
                            [0] => Array
                                (
                                    [id] => cus_2OPctP95LW8smv
                                    [amount] => 12
                                )

                        )

                )

        )

)

これらの配列は何百も存在することになるため、配列内のデータに効率的にアクセスする方法が必要です。予想される出力で次のコードを使用しています。

function printValuesByKey($array, $key) {
    if (!is_array($array)) return;
    if (isset($array[$key])) 
        echo $key .': '. $array[$key] .'<br>';
    else
        foreach ($array as $v)
            printValuesByKey($v, $key);
}

$cron = _get_cron_array();

foreach( $cron as $time => $hook ) {
    if (array_key_exists('oe_schedule_charge', $hook)) {
        echo '<div>';
        echo date('D F d Y', $time);
        echo printValuesByKey($hook, 'amount');
        echo printValuesByKey($hook, 'id');
        echo '</div>';
    }
}

しかし、これほど多くのデータを扱う必要があったことはないので、適切な予防策を講じたいと思います。このような多次元配列に効率的な方法でアクセスする際に光を当てることができれば、非常に高く評価されます。

4

1 に答える 1