10
Array
(
    [0] => Array
        (
            [name] => A
            [id] => 1
            [phone] => 416-23-55
            [Base] => Array
                (
                    [city] => toronto
                )

            [EBase] => Array
                (
                    [city] => North York                
                )

            [Qty] => 1
        )

(
    [1] => Array
        (
            [name] => A
            [id] => 1
            [phone] => 416-53-66
            [Base] => Array
                (
                    [city] => qing
                )

            [EBase] => Array
                (
                    [city] => chong                
                )

            [Qty] => 2
        )

)

「0、name、id、phone、Base、city、Ebase、Qty」の形式ですべてのキー値を取得するにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

15

これを試して

function array_keys_multi(array $array)
{
    $keys = array();

    foreach ($array as $key => $value) {
        $keys[] = $key;

        if (is_array($value)) {
            $keys = array_merge($keys, array_keys_multi($value));
        }
    }

    return $keys;
}
于 2012-06-27T21:17:00.793 に答える
5

配列のサイズがわからない場合は、各$valが配列の場合にそれ自体を呼び出すforeachループで再帰関数を使用します。サイズがわかっている場合は、各次元を調べて、それぞれのキーを記録します。

このようなもの:

<?php
function getKeysMultidimensional(array $array) 
{
    $keys = array();
    foreach($array as $key => $value)
    {
        $keys[] = $key;
        if( is_array($value) ) { 
            $keys = array_merge($keys, getKeysMultidimensional($value));
        }
    }

    return $keys;

}
于 2012-06-27T21:15:25.053 に答える