【问题标题】:php - initialize array keys and insert valuesphp - 初始化数组键并插入值
【发布时间】:2015-10-10 14:58:35
【问题描述】:

我想创建一个类似“表”的数组,以我的标题作为键,比如姓名、年龄地址。

我想初始化我的键并插入新值(想象一个 SQL 表)。有更好的方法吗?

$table = array();

foreach($rows as $key => $row){
 array_push($table, array());
 $table[$key]['name'] = $row['name'];
 $table[$key]['age'] = $row['age'];
 $table[$key]['address'] = $row['address'];
 if($row['age'] >= 18) $table[$key][$val_1] = 1;
 else $table[$key][$val_2] = 1;
}

想象一下有 val_1 ,..., val_n 我可以从一开始就将它们初始化为 0。

【问题讨论】:

  • 我的错。不应该有 $ 符号。
  • $rows是查询调用的结果?
  • @vlzvl: +1 我也想问同样的问题,因为没有定义或初始化 $row !
  • 是的。这是查询调用的结果

标签: php associative-array


【解决方案1】:
$table = array();

foreach ($rows as $key => $row) {
    if ($row['age'] >= 18) {
        $row[$val_1] = 1;
    } else {
        $row[$val_2] = 1;
    }

    $table[$key] = $row;
}

假设$row 只包含您想要的键。如果这是来自 SQL 查询,SELECT 仅是您想要的列。如果您确实需要将其修剪为特定的键选择,请在此之前执行此操作:

$row = array_intersect_key($row, array_flip(array('name', 'age', 'address')));

如果$key 只是一个数字键,请忽略它,直接使用$table[] = $row

$val_1/$val_2 似乎是糟糕的设计,但如果不知道它的用途,就不可能提出任何改进建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-03
    • 2012-02-08
    • 2017-07-21
    • 2022-10-08
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    相关资源
    最近更新 更多