php检查数组中是否存在值,在另一个数组中

时间:2014-01-12 12:08:38

标签: php arrays

我有一个数组dataImages,它包含图像信息数组,看起来像这样

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中的图片是否为main_image === 1的图片,以及如何显示该图片的数据?

4 个答案:

答案 0 :(得分:1)

根据你想要做的事情(例如只是循环),可能会有更好的选择,但是一个选项是array_filter,在这种情况下你可以做到

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

print_r(array_filter($theArray, "hasMain"));

答案 1 :(得分: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

答案 2 :(得分:1)

您也可以循环执行此操作:

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

答案 3 :(得分:1)

$main_image = FALSE;
$img = '';

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