0

私はこの配列を持っています

$array = array(
    "one" => "bar",
    "two"    => "21",
    "three"    => "22",
    "four"    => "25",
    "five" => array(
         "xxxxxxxxxxxxxxxxxx" => array(
             "ar1" => "food",
             "ar2" => "dr",
             "ar3" => "ch",
             "ar4" => "ju"
         ),
        "yyyyyyyyyyyyyyyyyyyy" => array(
             "ar1" => "food",
             "ar2" => "dr",
             "ar3" => "ch",
             "ar4" => "ju"
         )),
    "six" => "et",
    "seven" => "op",
    "eight" => "hjs",
    "nine" => array(
         "1" => array(
             "ar5" => "food",
             "ar87" => "dr",
             "ar21" => "ch",
             "ar443" => "ju"
         ),
         "2" => array(
             "73" => "food",
             "82" => "dr",
             "90" => "ch",
             "2123" => "ju"
         )),
    "ten" => "bar",
    "eleven" => "bar",
    "twelve" => "bar"
);

このような特定のレベルですべての配列キーを見つけています

foreach ($array['five'] as $keyed=> $user) {
foreach ($user as $key => $value) {
       echo "Key: $key; Value: $value Keyed: $keyed<br />\n";
}
}

ただし、使用するために見つかったすべての配列キーを取得したいarray_key_existsので、見つかったキーを配列に変換する必要があります。この配列を使用してそれを試みています

function the_keys($val){
foreach ($val['five'] as $keyed=> $user) {
foreach ($user as $key => $value) {
    $keyed = array();
}
}
}

しかし、それでも私が考えていたように、見つかったキーを配列にキャストしません。見つかったキーを配列にキャストするにはどうすればよいですか?.

4

2 に答える 2

3

すべてのキーを取得するには、$val['five']次を使用できますarray_keys()

$keyed = array_keys($val['five']);

その場合、ループは必要ありません。

于 2013-09-07T14:02:28.543 に答える
0

おそらくこれはあなたの問題を解決するでしょう

foreach($val['five'] as $arrFive) {
    //Here you have both arrays
    foreach($arrFive as $arrXXXX) {
        //Parse array with index xxxx
    }
    foreach($arrFive as $arrYYYY) {
        //Parse array with index yyyy
    }
}
于 2013-09-07T14:00:26.410 に答える