如何在foreach中访问索引

时间:2019-07-03 16:40:31

标签: php

我需要检查是否存在“ 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],但是我该怎么做呢?可能吗? enter image description here

3 个答案:

答案 0 :(得分:0)

尝试一下:

read

答案 1 :(得分:0)

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']) {...}
}

答案 2 :(得分:0)

您可以遍历项目并获取每个项目的索引。
在迭代CodProduto子数组时,使用此索引(delegate)访问其他数组中的值。

$i