php mysql从获取的数组行中删除编号的键

时间:2016-12-22 22:48:02

标签: php mysql arrays

我正在尝试进行mysql fetch,但它不断向数组中添加编号和标记的键。我希望它只记录数组中标记的名称和数据。

我使用了错误的mysql调用吗?

global $con,$mysqldb;
$sql="SHOW FIELDS FROM ".$dbtable;
$tr = mysqli_query($con,$sql);
$tl = mysqli_fetch_array($tr);
$tl = mysqli_fetch_array($tr);

$sql="SELECT * FROM ".$mysqldb.".".$dbtable." ORDER BY ".$tl['Field']." LIMIT 3";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
    $table[$row[1]] = $row;
}

foreach($table as $item => $data){
    foreach(array_keys($data) as $pointer => $field) {
        echo"pointer=".$pointer."\t";
        echo"field=".$field."\n";
        echo "data=".$data[$field]."\n";
    }
}

reults

pointer=0       field=0 data=3823
pointer=1       field=PID       data=3823
pointer=2       field=1 data=AA
pointer=3       field=symbol    data=AA
pointer=4       field=2 data=1
pointer=5       field=value   data=1

我想省略0,2和&阵列中有4个。

2 个答案:

答案 0 :(得分:1)

查看mysqli_fetch_array()函数的PHP.net手册。

您会看到有一个名为resulttype的选项会接受3个值中的1个 - MYSQLI_ASSOCMYSQLI_NUMMYSQLI_BOTH默认值。

使用MYSQLI_ASSOC将删除数字键。

或检查mysqli_fetch_assoc()

答案 1 :(得分:0)

感谢thebluefox快速响应。 我用以下内容替换了fetch:

while($row = $result->fetch_array(MYSQLI_ASSOC)) {

现在结果正在记录中。