0

この多次元配列から要素を引き出すのに問題がありますか?

以下は私のコードです:

$ShowTables = $Con->prepare("SHOW TABLES");
$ShowTables->execute();
$ShowTResults = $ShowTables->fetchAll();

print_r($ShowTResults);この多次元配列を取得した場合:

Array (
    [0] => Array ( [Tables_in_alltables] => userinformation [0] => userinformation )
    [1] => Array ( [Tables_in_alltables] => users           [0] => users ) 
) 

新しいテーブルがロードされるたびに、配列の別の次元が追加されます。多次元配列から、将来の計画に使用できる新しい配列に各テーブル名をプルしたいと考えています。

誰にもアイデアはありますか?

1foreachループを試しました。しかし、これは正義にはなりませんでした。

4

2 に答える 2

0

私が試した解決策:おそらく他の人がするようにではなく、それは完全に尊重されています。しかし、ここに私のものがあります:

$DatabaseTables = array();
foreach($ShowTResults AS $ShowTResult)
{
   foreach ($ShowTResult AS $ShowT)
 {
   $DatabaseTables[] = $ShowT;
 }
}
$DatabaseTables = array_unique($DatabaseTables); //Deletes Duplicates in Array
unset($ShowTResult);
unset($ShowT); // Free up these variables
print_r($DatabaseTables);
于 2012-12-16T23:39:38.497 に答える
0

最初の列のすべての結果を配列の形式でフェッチする必要があります。

$ShowTResults = $Con->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN, 0);
print_r($ShowTResults);

これはあなたに与えます:

Array (
    [0] => userinformation
    [1] => users
) 

私が思うに、それはあなたが探しているものです。

もう1つのバリエーション(もう少し複雑ですが、似ているが少し異なるケースに適しています)は、結果を関数(PDO::FETCH_FUNC)としてフェッチし、結果を直接マップすることです。

$ShowTResults = $ShowTables->fetchAll(PDO::FETCH_FUNC, function($table) {
    return $table;
});
于 2012-12-16T23:41:08.037 に答える