在多维数组php中附加数据

时间:2012-11-29 07:40:17

标签: php arrays multidimensional-array

我想在PHP中将表数据导入多维数组,表数据不断更新,因此只要数据插入表中,就必须更新矩阵。 我们如何创建一个多维数组,将数据插入其中,然后将数据动态地附加到数组中?

2 个答案:

答案 0 :(得分:0)

通常,你的表中有一个“普通”的一维数组。 要从中创建多维数组,必须将一维数组放入多维数组中。
为此,您可以使用以下内容:

$i = 0; //initialize i
while ($i < count($array)) { //as long as i is smaller than the array
    foreach ($array as $key => $value) { //walk along the array
        $newArray[$i][$key] = $value; // set the multidimensional array
    }
    $i++; // count one up 
}

有了这个,你应该得到一个多维数组,如:

array(
      '0' => array(
                    '0' => 'foo'
                    '1' => 'bar'
                  )
      '1' => array(
                    '0' => 'foo'
                    '1' => 'bar'
                  )
     )

依此类推......希望这会有所帮助

答案 1 :(得分:0)

对于你想做的事情,我认为应该看看对象方法,因为形成以下评论

  

Tom,方案是我在文档中维护一个术语频率表,所以我的column1将是所有文档中的不同术语,并为每个新文档添加一个新列,并插入相应的术语计数,如果它有任何新术语;

我可以识别以下内容

  • 文件

而不是使文档为null只更新所需的团队信息

示例

// Porpulate Teams
$teams = array_map(function ($v) {return new Team($v);}, range("A", "Z"));

// Porpulate Documents
$doc = new SplObjectStorage();
for($i = 0; $i < 100; $i ++) {
    $doc->attach(new Document($teams[array_rand($teams)]));
}

usort($teams, function($a,$b){ return $b->frequency - $a->frequency;});

//Top 10 Teams
echo "<pre>";
foreach (array_slice($teams, 0,10) as $team ) {
    echo "Team ", $team->name, "\t", $team->frequency, PHP_EOL;
}

输出

Team P  9
Team N  8
Team S  7
Team Q  6
Team M  6
Team D  6
Team O  5
Team G  5
Team K  5
Team F  5

使用的课程

class Document {
    function __construct(Team &$team) {
        //Do your metrix
        $team->frequency ++;
    }
}

class Team {
    public $name;
    public $frequency = 0;
    function __construct($name) {
        $this->name = $name;
    }
}