0

テーブル データを PHP の多次元配列にインポートしたいのですが、テーブル データは継続的に更新されるため、データがテーブルに挿入されるとすぐにマトリックスを更新する必要があります。多次元配列を作成し、そこにデータを挿入し、データを動的に配列に追加するにはどうすればよいでしょうか?

4

2 に答える 2

0

通常、テーブルから「通常の」1 次元配列を取得します。それから多次元配列を作成するには、1 次元配列を多次元配列に入れる必要があります。
これを行うには、次のようなものを使用できます。

$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

あなたがやりたいことについては、次のコメントを形成するため、オブジェクトアプローチを検討する必要があると思います

トム、シナリオは、ドキュメントの用語頻度のテーブルを維持しているので、私の列 1 はすべてのドキュメントの異なる用語になり、新しいドキュメントごとに新しい列が追加され、それぞれの用語カウントが挿入されます。新しい用語がある場合。

私は次のことを識別できます

  • チーム
  • 書類

ドキュメントを 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;
    }
}
于 2012-11-29T09:40:46.870 に答える