第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算數(shù)組中“列”的數(shù)量(php)

計算數(shù)組中“列”的數(shù)量(php)

PHP
白衣非少年 2022-01-14 16:09:29
我有以下 JSON:[    {       "0":"2019-08-31",      "1":"Bank Exp.",      "2":"AED",      "3":"30",      "4":"",      "5":"BANK FEE 10"   },   {       "0":"2019-08-31",      "1":"Inventory",      "2":"AED",      "3":"122",      "4":"",      "5":"DEPOSIT 10000"   },   {       "0":"2019-08-31",      "1":"Petty Cash",      "2":"AED",      "3":"4999",      "4":"",      "5":"DEPOSIT 10000"   }]我正在嘗試計算 Json 中元素或列的數(shù)量。結果應該是 6。我試過 echo count($data_array); (或 sizeof)結果為 3(行數(shù))??紤]到我必須將特定行的最大列數(shù)設置為列數(shù),我如何計算這個 Json 中的“列”?我必須使用循環(huán)來計數(shù)還是可以用一條指令來計算?
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

假設某些 var $json 包含您上面的 JSON 代碼,您應該知道以下代碼將生成stdClass類型的對象數(shù)組:


$data_array = json_decode($json);

所以 $data_array 實際上是一個數(shù)組,但它包含對象。正如您所指出的,這將返回JSON中的行數(shù):


echo sizeof($data_array);

顯然,列數(shù)不是行數(shù)。如果您想知道列數(shù),則需要檢查$data_arrayvar 的一個或多個行/對象/元素。只看第一個元素是方便的:


$col_count = sizeof($data_array[0]);

但是,如果 $data_array 的元素是 stdClass 類型的對象,這將導致 E_WARNING:


PHP Warning:  sizeof(): Parameter must be an array or an object that implements Countable in /tmp/foo.php on line 33

您可以選擇使用json_decode函數(shù)的第二個參數(shù),這將強制 PHP 將 JSON 代碼中的每個大括號對象解碼為關聯(lián)數(shù)組而不是 stdClass 對象:


$data_array = json_decode($json, TRUE);

$col_count = sizeof($data_array[0]);

這會產(chǎn)生一個$col_count值,該值對于數(shù)組中的第一個對象6是正確的。您應該考慮 $data_array 中后面的元素可能有更多或更少的列,具體取決于數(shù)據(jù)的結構。如果您確定所有元素將具有相同的列數(shù),這就足夠了,但是如果您有雜亂的數(shù)據(jù),您可能需要檢查數(shù)據(jù)數(shù)組的每個元素以查看真實的列數(shù)是多少:


$data_array = json_decode($json, TRUE);

$col_count = 0;

foreach($data_array as $row) {

        $col_count = max($col_count, sizeof($row));

}

var_dump($col_count);

這將產(chǎn)生一個$col_count值,該值反映 JSON 的任何元素中遇到的最大列數(shù)。顯然,如果您的 JSON 包含大量元素,則可能需要考慮性能。這完全取決于您的 JSON 數(shù)據(jù)和應用程序的性質。


編輯:我認為你可以擺脫這個,而不是顯式的 foreach 循環(huán),但它仍然需要 PHP 循環(huán)遍歷你的數(shù)據(jù)結構。也就是說,它可能會更快:


$max_col_count = max(array_map("count", $data_array));


查看完整回答
反對 回復 2022-01-14
?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

count($data_array)計算數(shù)組中元素的數(shù)量。在您的情況下,是 3。但是您的數(shù)組是多維的(矩陣)。因此,您需要依靠一些索引來獲取該位置的列數(shù):


<?php

echo count($data_array[0]);


查看完整回答
反對 回復 2022-01-14
  • 2 回答
  • 0 關注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號