获取数组中的字符数?

Get number of characters in an array?

我想通过 http 请求发送内容长度。对于普通字符串,我可以使用函数 strlen()。但是如何将它用于专门用于 PHP 中的多维数组的数组?我找到了以下脚本来提取像 var_dump() 这样的数组。但是 Content-Length 需要什么?

function count_array_chars($array){
  foreach($array as $key => $value){
      if (!is_array($value))
      {
          echo $key ." => ". $value ."\r\n" ;
      }
      else
      {
         echo $key ." => array( \r\n";

         foreach ($value as $key2 => $value2)
         {
             echo "\t". $key2 ." => ". $value2 ."\r\n";
         }

         echo ")";
      }
  }
}

更新:

$data_array = array(
    "end"=>array("dateTime"=>$end),
    "start"=>array("dateTime"=>$start),
    "summary"=>$name
  );

假设你只想计算值,你可以使用这种方法:

$array = array(
    "1" => "abcd",
    "2" => "xyz"
);

function count_array_chars(array $array)
{
    $charNumber = 0;
    array_walk_recursive($array, function($val) use (&$charNumber)
    {
        $charNumber += strlen($val);
    });
    return $charNumber;
}

print count_array_chars($array);

如果你也想算按键的话,是这样的:

$array = array(
    "end" => array("dateTime"=>"end"),
    "start" => array("dateTime"=>"start"),
    "summary" => "name"
);

function count_array_chars(array $array)
{
    $charNumber = 0;
    array_walk_recursive($array, function($val, $key) use (&$charNumber)
    {
        $charNumber += strlen($val) + strlen($key);
    });
    return $charNumber;
}

print count_array_chars($array);

因为你想发送数组作为http请求的一部分,你可以用http_build_query准备它并计算http_build_query返回的链的strlen:

<?php

$data_array = array(
    "end"=>array("dateTime"=>'end'),
    "start"=>array("dateTime"=>'start'),
    "summary"=>'name'
  );

$http_build_query = http_build_query($data_array);
echo strlen($http_build_query);