2014-01-12 113 views
0

我有用於保持圖像信息的陣列和看起來像這樣PHP的檢查,如果值exsist在陣列,在另一陣列

Array ( 
    [0] => Array ( 
     [id] => 104 
     [name] => sample-large-Test-1-a52d268be9ad9c.png 
     [user] => 31 
     [main_image] => 1 
    ) 
    [1] => Array ( 
     [id] => 105 
     [name] => sample-large-Test-1-a52d268bee6ba5.jpg 
     [user] => 31 
     [main_image] => 0 
    ) 
    [2] => Array ( 
     [id] => 106 
     [name] => sample-large-Test-1-a52d268bf4c457.jpg 
     [user] => 31 
     [main_image] => 0 
    ) 
) 

如何可以在陣列dataImages檢查一個陣列dataImages與main_image === 1圖像以及如何顯示該圖像的數據?

+0

查找到數組迭代。 – Boaz

+0

['array_filter'](http://uk3.php.net/array_filter) – Emissary

回答

1

可以在迴路也這樣做:

foreach ($dataImages as $image){ 
    if ($image['main_image']) print_r($image) 
} 
1

有可能是一個更好取決於你想要做的正是(如剛剛循環)什麼,但一個選項是array_filter在這種情況下,你可以做

function hasMain($var){ 
return $var["main_image"]; 
} 

print_r(array_filter($theArray, "hasMain")); 
1
function getMainImage($images) { 
    if(!is_array($images)) 
     return null; 

    foreach($images as $image) { 
     if(isset($image['main_image']) && $image['main_image'] == 1) 
      return $image; 
    } 

    return null; 
} 

$mainImage = getMainImage($myImages); 

像這樣的東西應該做的招。

您可以使用is_array檢查變量是否包含數組。 http://nl1.php.net/manual/en/function.is-array.php

1
$main_image = FALSE; 
$img = ''; 

foreach($images as $image) { 
    if ($image['main_image'] == 1){ 
    $main_image = TRUE; 
    $img = $image['name']; 
    break; 
    } 
}