0

PHP 新手,在这里花了几个小时研究之后,似乎没有什么是我所需要的。我有一个多维数组,我希望从中提取数据和 COUNT。例如:

array (
  'loyola' => NULL,
  'gold_coast' => NULL,
  'lincolnpark' => 
  array (
    0 => 'Building 1',
    1 => 'Building 2',
    2 => 'Building 3',
    3 => 'Building 4'
  ),
  'lakeview' => 
  array (
    0 => 'Building 1',
    1 => 'Building 2',
    2 => 'Building 3'

  ),
)

我希望基本上创建一个列出所有建筑物的表格,并在下一列中列出该建筑物出现的次数。

这是我到目前为止所得到的,但它只显示所有建筑物。

$buildings = unserialize($row['buildings']);
$lincolnpark = $buildings['lincolnpark'];
$loyola= $buildings['loyola'];
$gold_coast = $buildings['gold_coast'];
$lakeview = $buildings['lakeview'];

foreach ($lakeview as $value)
{                       
    echo $value;
}
}
4

2 回答 2

0

分两次执行:一次用于计算单独数组中的建筑物出现次数,另一次用于输出。

于 2013-04-24T21:50:02.783 回答
0

试试下面的代码。它将递归地导航到数组中,并打印每个构建出现的 qtd。

<?php


$arr = array (
        'loyola' => NULL,
        'gold_coast' => NULL,
        'lincolnpark' =>
        array (
                0 => 'Building 1',
                1 => 'Building 2',
                2 => 'Building 3',
                3 => 'Building 4'
        ),
        'lakeview' =>
        array (
                0 => 'Building 1',
                1 => 'Building 2',
                2 => 'Building 3'

        ),
);
$ret = array();

countBuildings($arr);

foreach($ret as $key=>$value){
    echo "Building: $key ==> qtd : $value <br>";
}
function countBuildings($arr = array()){
    global $ret;
    foreach($arr as $value){
        if(is_array($value)){
            countBuildings($value);
        }else{
            if($value != NULL){
                if(isset($ret[$value])){
                    $ret[$value] += 1;
                }else{
                    $ret[$value] = 1;
                }
            }
        }
    }
}
于 2013-04-24T22:38:18.547 回答