Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中计算数组的总索引数_Php_Arrays - Fatal编程技术网

在PHP中计算数组的总索引数

在PHP中计算数组的总索引数,php,arrays,Php,Arrays,我有一个具有以下结构的数组: Array ( [DigitalAssets] => Array ( [0] => Array ( [PartNumber] => 0276S-4 [Link] => https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.c

我有一个具有以下结构的数组:

    Array
    (
        [DigitalAssets] => Array
    (
        [0] => Array
            (
                [PartNumber] => 0276S-4
                [Link] => https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0576s-4.jpg
                [AssetTypeCode] => P04
                [FileName] => 0576s-4.jpg
                [RecordModifiedDate] => 2020-05-13T18:59:10.28
            )

        [1] => Array
            (
                [PartNumber] => 0437S-4
                [Link] => https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0437s-4.jpg
                [AssetTypeCode] => P04
                [FileName] => 0437s-4.jpg
                [RecordModifiedDate] => 2020-05-13T18:59:11.687
            )

        [2] => Array
            (
                [PartNumber] => 0574S-4
                [Link] => https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0574s-4.jpg
                [AssetTypeCode] => P04
                [FileName] => 0574s-4.jpg
                [RecordModifiedDate] => 2020-05-13T18:59:12.593
            )
我想计算数组的总索引,以便相应地运行循环。我使用了Count$array和Count$array,递归的,但是它不能返回正确的索引总数

只能指导那怎么做呢

谢谢

如果您想计算DigitalAssets direct子项,您可以这样做 计数$array['DigitalAssets']

下面是一些测试计数应该如何工作

代码是:

$test = array
        (
            'DigitalAssets' => array
            (
                0 => array(
                    'PartNumber' => '0276S-4',
                    'Link' => 'https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0576s-4.jpg',
                    'AssetTypeCode' => 'P04',
                    'FileName' => '0576s-4.jpg',
                    'RecordModifiedDate' => '2020-05-13T18:59:10.28'
                ),
                1 => array(
                    'PartNumber' => '0437S-4',
                    'Link' => 'https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0437s-4.jpg',
                    'AssetTypeCode' => 'P04',
                    'FileName' => '0437s-4.jpg',
                    'RecordModifiedDate' => '2020-05-13T18:59:11.687'
                ),
                2 => array
                (
                    'PartNumber' => '0574S-4',
                    'Link' => 'https://1ddf4b1b856a39e33863-d785dc0e3b62b5e0ef07f55db00b0659.ssl.cf2.rackcdn.com/Holley/0574s-4.jpg',
                    'AssetTypeCode' => 'P04',
                    'FileName' => '0574s-4.jpg',
                    'RecordModifiedDate' => '2020-05-13T18:59:12.593'
                )
            )
        );

        echo count($test['DigitalAssets'])." ".count($test['DigitalAssets'], 0)." ".count($test['DigitalAssets'], 1);
        exit();
就我而言,结果是: 3 3 18


这意味着在我的案例模式中,taht在默认情况下被设置为0,所以我将只得到第一级计数。如果我将mode设置为1,我也将计算所有嵌套项。这应该能帮你把事情弄清楚。

你到底想数多少?嵌套元素的数量,数字资产中的元素数量?您也可以使用foreach,这里有一个嵌套在数组中的数组。您的外部级别只有一个条目,即数字资产键下的条目。该键下的数组依次有多个条目,您可以通过简单的计数来计数……您只需要先移动到正确的级别。是的,我想计算DigitalAssets数组中的索引总数。@cbroe:您能提供一个示例吗?什么,仅仅是计数?这已经得到了回答。如果你只是想一直循环,那么你不需要先计算它们,你也可以使用foreach循环,正如奈杰尔已经说过的。总之,这是你应该从初学者教程中学习的东西,而不是在这里问。我想他说的foreach$array['DigitalAssets']是$value{$indexes+=count$value;}@Milan Rilex Ristic:当我回显$indexes时,它给出的结果是空的。我只想回显数组中总索引的计数;父母scope@MilanRilex Ristic:在您的代码的第一条注释中,我收到了结果4025,因为数组总共有804个索引。正如我在代码中提到的,每个索引有5个值。我需要显示结果804而不是4025。请在使用php手册中的count函数时尝试将seccond选项设置为0:如果可选模式参数设置为count\u RECURSIVE或1,count将递归地对数组进行计数。这对于计算多维数组的所有元素特别有用。