我想在PHP中将表数据导入多维数组,表数据不断更新,因此只要数据插入表中,就必须更新矩阵。 我们如何创建一个多维数组,将数据插入其中,然后将数据动态地附加到数组中?
答案 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;
}
}