首页 > 解决方案 > 如何访问foreach中的索引

问题描述

我需要检查是否有“CodProduto”,所以我做了:

foreach ($movimentos['CodProduto'] as $value){}

它将运行所有 CodProduto,如果它存在,我需要在 foreach 中执行 if 以检查其他 2 个字段:

if (!$movimentos['Percentagem'] && !$movimentos['Valor'] {...}

我的问题是我不知道如何访问项目/索引$movimentos['Percentagem']!movimentos['Valor']子索引我不知道如何调用它。

$movimentos['Valor'] 是一个数组,我不知道如何在检查 $movimentos['Percentagem'] 的同时检查他的项目

我知道有$movimentos['Valor'][$i],但我怎么能做到呢?是否可以? 在此处输入图像描述

标签: php

解决方案


foreach允许您指定一个变量来获取索引:

foreach ($movimentos['CodProduto'] as $index => $value) {
    if (!$movimentos['Percentagem'][$index] && !$movimentos['Valor'][$index]) {...}
}

但是,如果将所有相关数据放在一个数组中,而不是放在单独的数组中,通常会更容易。所以而不是

$movimentos = [
    "CodProduto" => [...],
    "Percentagem" => [...],
    "Valor" => [...],
    "ProdutoDesignaceo" => [...]
];

像这样做:

$movimentos = [
    ["CodProduto" => 1, "Percentagem" => 1, "Valor" => 2, "ProdutoDesignaceo" => "..."],
    ["CodProduto" => 2, "Percentagem" => 3, "Valor" => 4, "ProdutoDesignaceo" => "..."],
    ...
];

然后你的循环就像:

foreach ($movimentos as $m) {
    if (!$m['Percentagem'] && !$m['Valor']) {...}
}

推荐阅读