在PHP

2016-12-24 32 views
0

什麼是我想要得到的是對array_key_exists()的每次迭代返回true ..在PHP

我不知道check_mobile_exists( $mobiles, $electronics)這個函數返回true的時間。我想在$ electronics key列表中存在$ mobile數組鍵時爲true,當不存在時爲false。在這個結果的基礎上,我正在循環發佈結果。但正如我所說的那樣,函數在每次迭代中都會返回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; 
+0

當你想返回TRUE;?如果'電子'陣列中的所有'手機'? –

+0

謝謝你的答覆。我想在'$ mobile'中存在'$ mobile'的鍵時返回true,並且執行while循環中的「do something」。當$ mobile的鑰匙不存在於'$ electronics'時,它將返回false,while循環將執行「Do another ..」。這意味着 1. true ===>「做某事」 2. true ===>「做某事」 3. false ====>「做另一個」... 4. true ==> 「做點什麼」.. 這樣的數組存在我的例子中。 @JyothiBabuAraja –

+0

好的,我根據你的需要更新了答案。一探究竟。 –

回答

0

試試這個

$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; 

更新:所以你說,沒有使用其他的功能,你可以做到這一點。

+0

這是三次打印「做某事」的時間和後來的時間。這樣[見這裏](https://s30.postimg.org/xf1dmmwkh/dfddfs.png)。不工作。請再檢查一次。 –

+0

我認爲你的'while'循環執行多次。 –

+0

如果你在while循環中保留'foreach',你會得到預期的結果 –

0

做它不用其他檢查移動功能

$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; 
+0

感謝您的答覆。但是這不是在while循環中迭代的。我的意思是,如果intersection不是空的,它應該返回true,然後在while循環中打印「do something」。因此,對於$ mobile的前兩個鍵,它將返回true,並在第三個鍵上打印「do something」假,並應打印「做另一個」。請你可以檢查一下嗎? –

+0

如果不是手機在電子產品中:做另一個..這種方式我想要它。 –

+0

check_mobile函數然後有點跛腳這裏這樣做我已經更新了答案。你怎麼看 ? – Zain