sql查询后仅将某些字段添加到数组

时间:2019-03-06 17:05:42

标签: php arrays

我只想将项目1到5添加到$records(项目6用于其他用途)。下面的代码将添加所有六个项目。如何仅添加前五个?

$TheQuery="SELECT Item1, Item2, Item3, Item4, Item5, Item6 FROM MyTable";
$result = $link->query($TheQuery);

while ($row = $result->fetch_assoc()) {
    $records[]=$row;
}

2 个答案:

答案 0 :(得分:2)

如何使用array-slice

while ($row = $result->fetch_assoc()) {
    $records[] = array_slice($row, 0, 5);
}

您还可以使用array_filterdoc):

$keys = array("Item1", "Item2", "Item3", "Item4", "Item5");
while ($row = $result->fetch_assoc()) {
    $records[] = array_filter($row, function ($key) use ($keys ) {
        return in_array($key, $keys); }, ARRAY_FILTER_USE_KEY);
}

答案 1 :(得分:0)

如果将来将来某个时候更改查询的顺序,最好使用列名而不是索引

您可以像这样使用array_map:

$ records [] = array_map(function($ r){return [$ r ['item1'],$ r ['item2'] ... Etc];},$ row);

然后,如果以后需要,您可以随时添加/更改列 (请原谅格式,我在手机上)