Array(
Array(
[name] => John
[last] => Smith
[status] => sent
)
Array(
[name] => Jane
[last] => Doe
[status] => pending
)
Array(
[name] => Kripky
[last] => Woe
[status] => pending
)
)
代码: $arr = array();
foreach ($res as $key => $value) {
if($value['status'] == 'sent'){
$arr[] = array($value, $value['dupe'] = 1);
}
}
如果数组上有一个status = sent
,如何在所有数组上添加$value['dupe'] = 1
预期结果:
Array(
Array(
[name] => John
[last] => Smith
[status] => sent
[dupe] => 1
)
Array(
[name] => Jane
[last] => Doe
[status] => pending
[dupe] => 1
)
Array(
[name] => Kripky
[last] => Woe
[status] => pending
[dupe] => 1
)
)
这个循环应该为你做:
foreach ($a as $i) {
if ($i['status'] == 'sent') {
foreach ($a as &$_i) {
$_i['dupe'] = 1;
}
}
}
Example Demo
注意:这个使用变量引用(&
),所以它会更新实际的数组。
这段代码可能会对您有所帮助
// first, define a function that tells if there is a statut = sent
function statut_exist($arr)
{
foreach ($arr as $value)
if($value['status'] == 'sent')
return true;
return false;
}
// then add the dupe if there is a statut = sent
if(statut_exist())
foreach ($res as $value)
$value['dupe'] = 1