使用 PHP 提取数组键和值


Extract array key and value with PHP

早上好,我有这个数组:

Array (
    [0] => Array ( [ID] => 11 [Nome] => Ponte 1)
    [1] => Array ( [ID] => 12 [Nome] => Ponte 2 ) 
    [2] => Array ( [ID] => 13 [Nome] => Ponte 3 ) 
    [3] => Array ( [ID] => 14 [Nome] => Ponte 4 ) 
    [4] => Array ( [ID] => 15 [Nome] => Ponte 5 ) 
    [5] => Array ( [ID] => 16 [Nome] => Ponte 6 ) 
    [6] => Array ( [ID] => 17 [Nome] => Ponte 7 ) 
    [7] => Array ( [ID] => 18 [Nome] => Ponte 8 ) 
    [8] => Array ( [ID] => 19 [Nome] => Ponte 9 ) 
    [9] => Array ( [ID] => 20 [Nome] => Ponte 10 ) 
    [10] => Array ( [ID] => 21 [Nome] => Ponte 11 ) 
    [11] => Array ( [ID] => 22 [Nome] => Ponte 12 ) 
    [12] => Array ( [ID] => 23 [Nome] => Ponte 13 ) 
    [13] => Array ( [ID] => 24 [Nome] => Ponte 14 ) 
    [14] => Array ( [ID] => 25 [Nome] => Ponte 15 ) 
    [15] => Array ( [ID] => 26 [Nome] => Ponte 16 ) 
    [16] => Array ( [ID] => 27 [Nome] => Ponte 17 ) 
    [17] => Array ( [ID] => 28 [Nome] => Ponte 18 ) 
    [18] => Array ( [ID] => 29 [Nome] => Ponte 19 ) 
    [19] => Array ( [ID] => 30 [Nome] => Ponte 20 ) 
    [20] => Array ( [ID] => 31 [Nome] => Ponte 21 ) 
    [21] => Array ( [ID] => 32 [Nome] => Ponte 22 ) 
    [22] => Array ( [ID] => 33 [Nome] => Ponte 23 ) 
    [23] => Array ( [ID] => 34 [Nome] => Ponte 24 )
)

我只需要提取数组中的对象:

... etc ...
[ID] => 34 [Nome] => Ponte 24

假设我将PHP PDO与使用MySql创建该数组的此类一起使用,我该怎么做:

$stmt = $this->conn->getConnection()->prepare($query);
foreach($bindParam as $key => &$val){
    $stmt->bindParam($key,$val);
}
$stmt->execute();
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
return ($row);

使用此查询调用:

$query = $query->selectAll("SELECT Name,ID FROM Table WHERE field = :field",array(":field" => 10));

这是我所做的:

foreach ( $query as $key => $val) {
    echo $key."--".$val."<br/>";
}

但似乎不起作用,有办法做到这一点吗?非常感谢。

试试这个:

foreach ($query as $q) {
    foreach ($q as $key => $val) {
        echo $key."--".$val."<br/>";
    }
}
你需要

遍历$val,因为它也是一个数组。

foreach ( $query as $key => $val) {
    echo $key."--".$val."<br/>";
    foreach($val as $key1 => $val1){
        echo $key1."--".$val1."<br/>";
    }
}

哼!

如果您只想回显每个 ID 和名称:

foreach ( $query as $val) {
echo $val["ID"];
echo  "--";    
echo $val["nome"];
echo "<br/>";
}

这是正确的方法:

foreach ( $query as $val) { echo $val['ID']."--".$val['Nome']."<br/>"; }

谢谢马克。