【问题标题】:Get all column names on a ARRAY in PHP [duplicate]在PHP中获取ARRAY上的所有列名[重复]
【发布时间】:2017-02-04 23:17:30
【问题描述】:

想象一下我有这个数组

 $records = array(
array(
    'id' => 2135,
    'first_name' => 'John',
    'last_name' => 'Doe',
),
array(
    'id' => 3245,
    'first_name' => 'Sally',
    'last_name' => 'Smith',
),
array(
    'id' => 5342,
    'first_name' => 'Jane',
    'last_name' => 'Jones',
),
array(
    'id' => 5623,
    'first_name' => 'Peter',
    'last_name' => 'Doe',
)
);

我试过了

 array_keys($records)

但它不会返回这个

Array
(
    [0] => id
    [1] => first_name
    [2] => last_name
)

我想知道列的名称以及其中有多少列有可能更改数据库上的查询并立即获得具有正确数量列的表

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    假设您的数组中至少有一行,所有行都有相同的列,您可以这样做:

    <?php
        $numColumns = count($records[0]);
        $numRows = count($records);
        $columnsNames = array_keys($records[0]);
    ?>
    

    这是因为你有一个数组数组,所以使用 array_keys() 是正确的,你只需要在 $records 中包含的一个数组(在本例中是第一个)上执行

    【讨论】:

    • 计数的目的是什么?
    • count 返回数组中的条目数量,可以是计数或关联
    【解决方案2】:

    我不明白 MazzCris 的回答,所以我会按照我的理解回答这个问题。

    访问第一个子数组,然后提取键。

    代码:(Demo)

    $keys = array_keys($records[0]);
    var_export($keys);
    echo "\n";
    echo "Number of columns: " , count($keys);
    

    输出:

    array (
      0 => 'id',
      1 => 'first_name',
      2 => 'last_name',
    )
    Number of columns: 3
    

    【讨论】:

    • 有没有人有勇气为这些反对票辩护?
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 2019-02-26
    • 2021-07-27
    • 2014-03-20
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多