所以我有几个相同长度和关联的关联数组,需要比较它们。如果第一个数组中的投票键具有值,我需要使用相同的值更新第二个数组中的投票键值。
// create the arrays...
$votes_array = [];
array_push($votes_array, array(
'id' => '1',
'voted' => '-1'
)
);
array_push($votes_array, array(
'id' => '1',
'voted' => ''
)
);
$menu_array = [];
array_push($menu_array, array(
'id' => '1',
'voted' => ''
)
);
array_push($menu_array, array(
'id' => '1',
'voted' => ''
)
);
我尝试了这个,但是甚至无法得到结果回应真实。
foreach ($votes_array as $votes_array_key => $votes_array_value) {
foreach ($menu_array as $menu_array_key => $menu_array_value) {
if( $votes_array_key == 'voted' && ($votes_array_value == '1' || $votes_array_value == '-1') ){
echo 'true';
// Update the $menu_array array index with the associated 'voted' value.
}
}
}
所以它最终会以$ menu_array [0] ['voteed']为'-1'。
我如何实现这一目标?
感谢。
修改 我还修改了接受的答案,以便在投票时间长度变化时满足。
foreach($votes_array as $votes_key => $votes_vote) {
if( ! $votes_vote['voted'] )
{
continue;
}
else
{
$getVoteId = $votes_array[$votes_key]['id'];
foreach($menu_array as $menu_key => $menu_vote)
{
if($menu_array[$menu_key]['id'] == $getVoteId)
$menu_array[$menu_key]['voted'] = $votes_vote['voted'];
}
}
}
答案 0 :(得分:1)
假设这些字符串和数组的长度相同,就像你说的那样,从头顶开始这将是简单的:
foreach($votes_array as $key => $vote) {
if( ! $vote['voted']) continue;
$menu_array[$key]['voted'] = $vote['voted'];
}
答案 1 :(得分:1)
您似乎设置了voted
个密钥,因此我使用空而不是 isset 来检查非值。
foreach($votes_array as $key=>$vote) {
if (!empty($vote["voted"])) {
$menu_array[$key]["voted"] = $vote["voted"];
}
}