不知何故,我设法在下面创建了数组。现在已经创建了数组,有人可以解释我如何检索以下信息:
2011-11-18的元素总数;
Array
(
[0] => Array
(
[0] => Array
(
[2011-11-18 00:00:00] => C
)
[1] => Array
(
[2011-11-18 00:00:00] => I
)
[2] => Array
(
[2011-11-18 00:00:00] => S
)
)
[1] => Array
(
[0] => Array
(
[2011-11-22 00:00:00] => C
)
[1] => Array
(
[2011-11-22 00:00:00] => S
)
)
)
感谢。
答案 0 :(得分:2)
元素总数
count($array_name, COUNT_RECURSIVE);
计算特定键的数量,就像你的情况一样,你可以使用它,我不知道是否有另一种更好的方法来做到这一点
$count = 0;
$date =date("Y-m-d H:i:s", mktime(0, 0, 0, '11', '22', '2011'));
foreach ($array_name as $arr) {
foreach ($arr as $inner) {
if (isset($inner[$date])) {
++$count;
}
}
}
答案 1 :(得分:1)
你可以这样做:
foreach($yourArray as $key => $val) { echo "Key is:".$key." and value is:".$val."<br />"; }
答案 2 :(得分:1)
你需要在周期中计算这一点,如前面所述:
<?
$arr[0][0]["2011-11-18 00:00:00"] = "C";
$arr[0][1]["2011-11-18 00:00:00"] = "I";
$arr[0][2]["2011-11-18 00:00:00"] = "S";
$arr[1][0]["2011-11-22 00:00:00"] = "C";
$arr[1][1]["2011-11-22 00:00:00"] = "S";
// calc all
$tot = 0;
foreach ($arr as $a1)
foreach ($a1 as $a)
$tot ++;
echo "Total: $tot\n<br />"; // echo 5
//Find specific time elem
$tot = 0;
$d_ = "2011-11-18 00:00:00";
foreach ($arr as $a1)
foreach ($a1 as $a2)
foreach ($a2 as $a3_k=>$a3_v)
if ( $a3_k == $d_ )
$tot ++;
echo "Total of $d_: $tot\n<br />"; // echo 5
?>
答案 3 :(得分:0)
可以通过遍历每个数组并对其count
求和来检索元素的总数。您可以这样说:
function get_total_elements() {
$sum = 0;
foreach ($outer_arr as $inner_arr) {
foreach ($inner_arr as $date_arr) {
$sum += count($date_arr);
}
}
return $sum;
}
要获取给定日期的元素总数,您只需稍微修改一下即可:
function get_total_elements_for_date($m, $d, $y) {
date("Y-m-d H:i:s", mktime(0, 0, 0, $m, $d, $y));
$sum = 0;
foreach ($outer_arr as $inner_arr) {
foreach ($inner_arr as $date_arr) {
if (isset($date_arr[$date])) {
$sum++;
}
}
}
return $sum;
}
然后你可以通过说(2011年11月18日的例子)来调用这个函数:get_total_elements_for_date(11, 18, 2011)
。