【问题标题】:PHP - 2D Arrays - Looping through array keys and retrieving their values?PHP - 2D 数组 - 遍历数组键并检索它们的值?
【发布时间】:2012-07-30 12:12:07
【问题描述】:

我有一个这样输出的数组:

1 => 
array
  'quantity' => string '2' (length=1)
  'total' => string '187.90' (length=6)

2 => 
array
  'quantity' => string '2' (length=1)
  'total' => string '2,349.90' (length=8)

我想遍历每个数组键并检索与它们相关的 3 个值的集合,就像这样(不起作用):

foreach( $orderItems as $obj=>$quantity=>$total)
{
    echo $obj;
    echo $quantity;
    echo $total;
}

是否有人能够就我将如何完成此任务提供一些建议,或者甚至可以为我提供更好的方式来完成这项任务。任何与此相关的信息,包括可能涵盖此内容的教程链接,将不胜感激。谢谢!!

【问题讨论】:

  • 请注意,“值”不是12; KEYS 是 1 和 2 - 而与键 1 和 2 关联的值是包含 quantitytotal 的对象。

标签: php arrays loops


【解决方案1】:
foreach( $orderItems as $key => $obj)
{
    echo $key;
    echo $obj['quantity'];
    echo $obj['total'];
}

使用上面的。

【讨论】:

  • 感谢您的输入,我将如何获得键值?在我的示例中,它将分别为 1 和 2。
【解决方案2】:

您需要多阅读forEach() 上的文档,因为您的语法和对它的理解有些不正确。

$arr = array(
    array('foo' => 'bar', 'foo2', 'bar2'),
    array('foo' => 'bar', 'foo2', 'bar2'),
);
foreach($arr as $sub_array) {
    echo $sub_array['foo'];
    echo $sub_array['bar'];
}

forEach() 迭代地将数组的每个键传递给一个变量——在上述情况下,$sub_array(一个合适的名称,因为您的数组包含子数组)。所以在循环体内,你需要询问。

【讨论】:

  • 感谢您的意见,非常感谢。是的,您对文档也是正确的。但在我的示例中,我也使用了$obj。是否可以检索此值?请参阅上面答案中的评论。
  • 你的forEach 语法是错误的,所以我很难准确地使用你输入的内容。听起来您想像我一样使用$obj 而不是$sub_array。我应该认为我的示例很容易适应您的目的。如果您明确希望我进行编辑以显示此内容,请告诉我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
相关资源
最近更新 更多