过滤掉整数的数组键

时间:2012-12-11 23:20:26

标签: php arrays

我有多个数组(这些数据都来自使用PDO语句的MySQL数据库),以下是一个例子:

Array ( [id] => 1 [0] => 1 [name] => HELLO [1] => HELLO )

我只想要不是数字的键(在本例中为'id'和'name')作为数组。

如何过滤掉整数键,以便最终得到一个数组:

Array ( [id] => 1 [name] => HELLO )

(键并不总是'id'和'name',或名称编号,或相同数量的数组键)

2 个答案:

答案 0 :(得分:4)

我认为你应该用适当的标志PDO::FETCH_ASSOC

来解决这个问题
$sth = $dbh->prepare("SELECT id,name FROM tableName");
$sth->execute();

$row = $sth->fetch(PDO::FETCH_ASSOC); // use this flag for return only column names

如果不可能:

foreach($array as $k=>$v) {
    if(filter_var(FILTER_VALIDATE_INT, $k) !== FALSE) {
        unset($array[$k]);
    }
}

答案 1 :(得分:0)

$newRow = array();
foreach($row as $key => $value)
    if(is_string($key))
        $newRow[$key] = $value;