dsgd5756 2017-03-31 03:54
浏览 28
已采纳

在php中查找多维数组中有效键的数量

I need to know how many arrays have valid keys, how many arrays with valid keys in multidimensional array. Let me explain:

Input:

Array
(
    [65] => Array
        (
            [1] => Array
                (
                    [0] => Array
                        (
                            [mediumid] => 65
                            [mediumname] => VINYL
                            [trackid] => 525
                            [trackposition] => 1
                            [tracklocation] => SIDE A
                            [tracknumber] => 1
                            [trackname] => I love u
                        )

                    [1] => Array
                        (
                            [mediumid] => 65
                            [mediumname] => VINYL
                            [trackid] => 526
                            [trackposition] => 1
                            [tracklocation] => SIDE A
                            [tracknumber] => 2
                            [trackname] => Sun is yellow
                        )

                )

            [2] => Array
                (
                    [0] => Array
                        (
                            [mediumid] => 65
                            [mediumname] => VINYL
                            [trackid] => 527
                            [trackposition] => 2
                            [tracklocation] => SIDE B
                            [tracknumber] => 1
                            [trackname] => Car red
                        )

                    [1] => Array
                        (
                            [mediumid] => 65
                            [mediumname] => VINYL
                            [trackid] => 528
                            [trackposition] => 2
                            [tracklocation] => SIDE B
                            [tracknumber] => 2
                            [trackname] => Lady in red
                        )

                )

        )

     [769] => Array
        (
            [] => Array
                (
                    [0] => Array
                        (
                            [mediumid] => 769
                            [mediumname] => DVD
                            [trackid] =>
                            [trackposition] =>
                            [tracklocation] => 
                            [tracknumber] =>
                            [trackname] =>
                        )
                )
        ) 
    )

The mediums[65] next array contains 2 valid keys (1 and 2). The mediums[769] next array contains no valid keys

Therefore only mediums[65] contains valid keys, so total of arrays with valid keys = 1. I need to find that total. How ?

I've try using array_keys and array_filter, with no success (or either i'm doing it wrong)

  • 写回答

1条回答 默认 最新

  • doumizhi0809 2017-03-31 04:11
    关注

    PHP code demo

    <?php
    $array=Array
    (
        65 => Array
            (
                1 => Array
                    (
                        0 => Array
                            (
                                "mediumid" => 65,
                                "mediumname" => "VINYL",
                                "trackid" => 525,
                                "trackposition" => 1,
                                "tracklocation" => "SIDE A",
                                "tracknumber" => 1,
                                "trackname" => "I love u"
                            ),
    
                        1 => Array
                            (
                                "mediumid" => 65,
                                "mediumname" => "VINYL",
                                "trackid" => 526,
                                "trackposition" => 1,
                                "tracklocation" => "SIDE A",
                                "tracknumber" => 2,
                                "trackname" =>"Sun is yellow"
                            )
    
                    ),
    
                2 => Array
                    (
                        0 => Array
                            (
                                "mediumid" => 65,
                                "mediumname" => "VINYL",
                                "trackid" => 527,
                                "trackposition" => 2,
                                "tracklocation" => "SIDE B",
                                "tracknumber" => 1,
                                "trackname" => "Car red"
                            ),
    
                        1 => Array
                            (
                                "mediumid" => 65,
                                "mediumname" => "VINYL",
                                "trackid" => 528,
                                "trackposition" => 2,
                                "tracklocation" => "SIDE B",
                                "tracknumber" => 2,
                                "trackname" => "Lady in red"
                            )
    
                    )
    
            ),
    
         769 => Array
            (
               ""  => Array
                    (
                        0 => Array
                            (
                                "mediumid" => 769,
                                "mediumname" => "DVD",
                                "trackid" => "",
                                "trackposition" => "",
                                "tracklocation" => "",
                                "tracknumber" =>"",
                                "trackname" => ""
                            )
                    )
            ) 
        );
    $counter=0;
    $trackedNull=false;
    foreach($array as $key => $value)
    {
        $keys=array_keys($array[$key]);
        foreach($keys as $arraykey)
        {
            if($arraykey=="")
            {
                $trackedNull=true;
                break;
            }
        }
        if($trackedNull==true)
        {
            $trackedNull=false;
        }
        else
        {
            $counter++;
        }
    }
    echo $counter;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败