2015-11-11 98 views
1

這是我的數組animals如何檢測特定數組中是否存在值?

array(5) { 
    [0]=> 
    array(3) { 
    ["number"]=> 
    string(3) "123" 
    ["cat"]=> 
    string(4) "fred" 
    ["dog"]=> 
    string(3) "ted" 
    } 
    [1]=> 
    array(3) { 
    ["number"]=> 
    string(3) "456" 
    ["cat"]=> 
    string(4) "todd" 
    ["dog"]=> 
    string(4) "jane" 
    } 
    [2]=> 
    array(3) { 
    ["number"]=> 
    string(3) "789" 
    ["cat"]=> 
    string(3) "sam" 
    ["dog"]=> 
    string(3) "bob" 
    } 
    [3]=> 
    array(1) { 
    ["city"]=> 
    string(7) "atlanta" 
    } 
    [4]=> 
    array(1) { 
    ["farm"]=> 
    string(7) "johnson" 
    } 
} 

我想檢測以下:

對於包含number我需要找出是否catdog存在於每個陣列。

這是我的嘗試:

foreach($animals as $row) { 
     if (array_key_exists('number',$row)){     
      if(empty($row['dog'])){ 
      echo "dog missing"; 
      } 
      if(empty($row['cat'])){ 
      echo "cat missing"; 
      } 
     } 
    } 

所以,如果我例如刪除我的文件fredtedjane我的結果是:

cat is missing 
dog is missing 
dog is missing 

但我需要知道更具體的哪個貓或狗失蹤。所以我希望得到的結果是:

cat is missing in number 123 
dog is missing in number 123 
dog is missing in number 456 

我的問題是,我不知道如何獲得從動物到數量的連接。

+1

看看PHPS'陣列步行()'函數:http://php.net/manual/en/function.array-walk.php – arkascha

+4

'回聲「狗丟失數量「。$ row ['number'];' – Thamilan

+1

由於誤報('empty(0)'返回TRUE),您可能想使用'array_key_exists()'或'isSet()'而不是'empty() – kero

回答

1

難道你不能只是將它添加到回聲?像:

foreach($animals as $row) { 
     if (array_key_exists('number',$row)){     
      if(empty($row['dog'])){ 
      echo "dog missing in number ".$row["number"]; 
      } 
      if(empty($row['cat'])){ 
      echo "cat missing in number ".$row["number"]; 
      } 
     } 
    } 
+0

哦,是的,這是真的..我想複雜:D – Jarla

+1

我是兩分鐘快:) – Thamilan