【问题标题】:Extract array key and value with PHP使用 PHP 提取数组键和值
【发布时间】:2015-05-17 13:55:43
【问题描述】:

早安, 我有这个数组:

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/>";
}

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

【问题讨论】:

  • 我只想检索 ID 值和 Nome 值...
  • “似乎不起作用”不是一个有用的陈述。您可能会通过使用 $value['ID']$value['Nome'] 获得结果 - 您是否已经尝试过?
  • 仅提取该数组中的值,您可以简单地使用 array_values($array);那么如果你需要 foreach 循环。
  • foreach ( $query as $val) { echo $val['ID']."--".$val['Nome']."&lt;br/&gt;"; }
  • 这太棒了,谢谢@MarkBaker :) 解决了我的问题,所以我现在可以根据需要进行编辑以获得正确的输出 :)

标签: php mysql arrays multidimensional-array pdo


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    你需要遍历$val,因为它也是一个数组..

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

    HTH!

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        这是正确的方法:

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

        谢谢马克。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-10
          • 2019-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多