次のようなPHP / MYSQLクエリがあります。
$sql = SELECT type, count(*) AS total FROM stats GROUP BY type
$this->sql = $sql;
function numObjects() {
$stats = $this->conn->query($this->sql);
while($stat_type = $stats->fetch_assoc()){
$category[] = $stat_type;
}
return $category;
}
これは単純なクエリですが、多次元配列が返されるため、データを希望どおりに取得する方法はわかりません。
array(2) {
[0]=> array(2) {
["type"]=> string(4) "page"
["total"]=> string(1) "1"
}
[1]=> array(2) {
["type"]=> string(8) "category"
["total"]=> string(1) "1"
}
}
私が探しているのは、各配列の値をkey => valueの組に変換することです。
["page"]=> "1"
["category"]=> "1"
私はこれを1次元配列に変換することができましたが、正しいフォーマットではありませんでした。
回答:
回答№1は0これを試して:
$new_array = array();
foreach ($old_array as $elem) {
$new_array[$elem["type"]] = $elem["total"];
}
var_dump($new_array); //for print the array
回答№2の場合は0
PHPが5.5以上の場合は、 array_column() 関数
$reformatted = array_column(
$category,
"total",
"type"
);