0

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

4

2 回答 2

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'
                  )
     )

等等...希望这会有所帮助

于 2012-11-29T07:53:01.087 回答
0

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

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

我可以识别以下内容

  • 团队
  • 文档

而不是使文档为空,仅更新所需的团队信息

例子

// 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;
    }
}
于 2012-11-29T09:40:46.870 回答