2013-10-07 29 views
2

我有這樣爲什麼多維數組保持返回鍵「0」?

$test = array("sumber"=>array("f1","f2"),"ukraina"=>array("f3","f4"),"0"=>array("f5","f6")); 

foreach($test as $key => $value){ 
    if($key=="sumber"){ 
    $a=''; 
    for($i=0;$i<count($value);$i++){ 
     $a.=$value[$i].", "; 
    } 
    echo $key." has ".$a."<br/>"; 
    } 
} 

一個數組,我想結果是這樣才

蘇木貝爾有F1,F2,

但結果卻是這樣

sumber has f1,f2,

0有F5,F6,

請幫助我如何只顯示鍵 「蘇木貝爾」 ??? 謝謝。

回答

3

使用三聯條件===if($key=="sumber")條件:

$test = array("sumber"=>array("f1","f2"),"ukraina"=>array("f3","f4"),"0"=>array("f5","f6")); 

foreach($test as $key => $value){ 
    if($key==="sumber"){ 
    $a=''; 
    for($i=0;$i<count($value);$i++){ 
     $a.=$value[$i].", "; 
    } 
    echo $key." has ".$a."<br/>"; 
    } 
} 

否則,當key是空/ 0 if()條件,也可實現。

+0

非常感謝你的解答和解釋fedorqui。它確實有幫助。 –

+0

很好讀,@RioEduardoBGSimatupang!既然你是新來的,記住你可以標記接受的答案,如果你的問題已經解決了。您可以點擊答案旁邊的複選標記將其從空心切換爲綠色。如果您有任何疑問,請參閱[幫助中心>提問](http://stackoverflow.com/helpcenter/someone-answers)! – fedorqui

2

你可以簡單地使用此代碼:

$test = array("sumber"=>array("f1","f2"),"ukraina"=>array("f3","f4"),"0"=>array("f5","f6")); 

if(array_key_exists("sumber",$test) && !empty($test['sumber'])) { 
    echo "sumber has".implode(",",$test['sumber']); 
} 
+1

這並不能解釋爲什麼它首先是錯的。 –

1

看一看PHP手冊上的比較值: http://www.php.net...comparison.php

<?php 
    var_dump(0 == "a"); // 0 == 0 -> true 
    var_dump("1" == "01"); // 1 == 1 -> true 
    var_dump(0 === "01"); // false <- what you need 
    ?> 
+0

這是一個比答案更多的評論。 – fedorqui

+0

@fedorqui我剛剛編輯我的答案,使其更清楚 – Marschal

0

只是指的是特定元素開始嗎?

<?php 
    if (!empty($test["sumber"])) { 
     foreach ($test["sumber"] as $values) { 
      echo "sumber has " . implode(", ", $values) . "<br />"; 
     } 
    } 
?> 
+0

如果沒有'琥珀'鍵存在,那麼什麼? –