在php中数组_key _exists()的每次迭代中返回true

在php中数组_key _exists()的每次迭代中返回true,php,arrays,foreach,array-key-exists,Php,Arrays,Foreach,Array Key Exists,我想得到的是 我不知道检查移动设备是否存在($mobiles,$electronics)此功能始终返回true。当$electronics密钥列表中存在$mobile数组密钥时,我希望为true;当不存在时,希望为false。在这个结果的基础上,我循环了post结果。但正如我所说,函数在每次迭代中都返回true。有人建议我现在该怎么办吗 function check_mobile_exists( $mobiles, $electronics ) { foreach( $mobiles

我想得到的是

我不知道
检查移动设备是否存在($mobiles,$electronics)
此功能始终返回true。当$electronics密钥列表中存在$mobile数组密钥时,我希望为true;当不存在时,希望为false。在这个结果的基础上,我循环了post结果。但正如我所说,函数在每次迭代中都返回true。有人建议我现在该怎么办吗

function check_mobile_exists(  $mobiles, $electronics ) {
    foreach( $mobiles as $mobile => $price ) {
        if( array_key_exists( $mobile, $electronics ) ) {
            return true;
        }
        return false;
    }
}

$mobiles = array(
    'iPhone' => '$350',
    'tablet' => '$100',
    'samsung' => '$200',
    'walton'  => '$60'
);

$electronics = array(
    'iPhone' => 'OK',
    'tablet' => 'will do',
    'walton' => 'No need'
);

while( have_posts() ): the_post();
    if( check_mobile_exists(  $mobiles, $electronics ) ){ // returning only true on every iterating
        echo get_the_title() .' do something....<br />';
    } else {
        echo 'Do another....';
    }
endwhile;
功能检查\u手机\u存在($mobiles,$electronics){
foreach($mobiles as$mobile=>$price){
如果(阵列密钥存在($mobile$electronics)){
返回true;
}
返回false;
}
}
$mobiles=阵列(
“iPhone”=>“350美元”,
“平板电脑”=>“100美元”,
“三星”=>“200美元”,
“沃尔顿”=>“60美元”
);
$electronics=阵列(
“iPhone”=>“OK”,
“平板电脑”=>“可以”,
“沃尔顿”=>“没必要”
);
while(have_posts()):the_post();
如果(check_mobile_exists($mobiles,$electronics)){//在每次迭代时仅返回true
echo获取标题().“做点什么…”
; }否则{ 回声“再做一次……”; } 结束时;
试试这个

$mobiles = array(
    'iPhone' => '$350',
    'tablet' => '$100',
    'samsung' => '$200',
    'walton'  => '$60'
);
$electronics = array(
    'iPhone' => 'OK',
    'tablet' => 'will do',
    'walton' => 'No need'
);

while( have_posts() ): the_post();
  foreach( $mobiles as $mobile => $price ) {
    if( array_key_exists( $mobile, $electronics ) ) {
        echo get_the_title() .' do something....<br />';
    }else{
        echo 'Do another....';
    }   
  }
endwhile;
$mobiles=array(
“iPhone”=>“350美元”,
“平板电脑”=>“100美元”,
“三星”=>“200美元”,
“沃尔顿”=>“60美元”
);
$electronics=阵列(
“iPhone”=>“OK”,
“平板电脑”=>“可以”,
“沃尔顿”=>“没必要”
);
while(have_posts()):the_post();
foreach($mobiles as$mobile=>$price){
如果(阵列密钥存在($mobile$electronics)){
echo获取标题().“做点什么…”
; }否则{ 回声“再做一次……”; } } 结束时;

更新:如您所说,不使用其他功能,您可以执行此操作。

在不检查移动功能的情况下执行此操作

$mobiles = array(
    'iPhone' => '$350',
    'tablet' => '$100',
    'samsung' => '$200',
    'walton'  => '$60'
);
$electronics = array(
    'iPhone' => 'OK',
    'tablet' => 'will do',
    'walton' => 'No need'
);




while( have_posts() ): the_post();
  foreach ( $mobiles as $m_key => $mobile ) {
    if ( array_key_exists( $m_mey, $electronics) ) { 
        do somethin
    } else { 
        do somethin
    }
}
endwhile;

当您要返回
true
时?如果
electronics
数组中的所有
手机
?感谢您的ans。当
$mobile
的键存在于
$electronics
中时,我想返回true,并且while循环中的时间将执行“do something”。当$mobile键不存在于
$electronics
中时,它将返回false,而while循环将执行“Do Other…”。这意味着1。true==>“做点什么”2。true==>“做点什么”3。false=>“再做一次”。。。4.true==>“做点什么”。。在我的示例中,数组就是这样存在的@JyothiBabuArajaOkay,我根据您的需要更新了答案。检查它。感谢您的ans。但这不是在while循环中迭代。我的意思是,如果交叉点不为空,它应该返回true,然后在while循环中,它将打印“do something”。因此,对于
$mobile
的前两个键,它将返回true并打印“do something”,在第三个键,它将返回false,并且应该打印“do other”。请你检查一下好吗?如果不是电子产品中的移动设备,请再做一次。。我想这样做。检查手机功能有点蹩脚。这样做我已经更新了答案。你认为呢?但这是一个结果。请看,我在这里创建了一个工作示例。你能确认结果吗?你能解释一下期望的是什么吗?这是一次两次打印“做点什么”,然后再打印三次。这边走。不行。请再次检查。我认为您的
while
循环执行多次。如果您将
foreach
保持在
while
循环之外,您将得到预期的结果,但我需要在帖子上执行一些操作。这意味着当它返回true时,它将打印一些特定的帖子,否则将打印另一篇。因此,您需要迭代所有
帖子
,并在
电子
中为
手机
选择特定的
帖子