0

我想创建一个像“表”一样的数组,我的标题作为我的键,比如名字,年龄地址。

我想初始化我的键并插入新值(想象一个 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 。

4

1 回答 1

0
$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设计,但如果不知道它的用途,就不可能提出任何改进建议。

于 2013-05-07T05:59:10.800 回答