多维数组 - 拉取数据

时间:2013-04-24 21:46:37

标签: php multidimensional-array

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

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;
}
}

2 个答案:

答案 0 :(得分:0)

分两次进行:一次用于计算单独数组中的构建事件,另一次用于输出。

答案 1 :(得分: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;
                }
            }
        }
    }
}