2015-07-02 37 views
1
array 
    0 => 
    array 
     'point' => string '2' 
    1 => 
    array 
     'point' => string '4' 
    2 => 
    array 
     'point' => string '1' 

我需要在上面的數組中檢查'point'的值,如果'point'的所有值都是'4',它將返回true作爲下面的數組。PHP陣列檢查所有值是相等的

array 
    0 => 
    array 
     'point' => string '4' 
    1 => 
    array 
     'point' => string '4' 
    2 => 
    array 
     'point' => string '4' 
+0

只有當整個陣列僅由點= > 4? – Toumash

+2

'function checkArray($ myArray){$ result = array_unique(array_column($ myArray,'status_id')); return(count($ result)== 1 && $ result [0] =='4'); }' –

+0

@Toumash是所有值點'4' – ichadhr

回答

1

你只需要使用2個語句FOMR PHP。 iffor

我用下面的腳本來測試它(你可以選擇循環中的一個(或的foreach))

$test = array(array('point' => 4), array('point' => 4)); 

function checkArrayForPointValue($array, $expectedValue) 
{ 
    $ok = true; 
    for ($i = 0; $i < count($array); $i++) { 
     if ($array[$i]['point'] != $expectedValue) { 
      $ok = false; 
      break; 
     } 
    } 
    // choose one of them 

    foreach ($array as $element) { 
     if ($element['point'] != $expectedValue) { 
      $ok = false; 
      break; 
     } 
    } 
    return $ok; 
} 

print(checkArrayForPointValue($test, '4') ? 'yay' : 'not yay'); 
+0

謝謝你拯救我的生命:) – ichadhr

0

在foreach比較每個值:

function arrayComparePoint($array) { 
$valueCompare = $array[0]['point']; 
    foreach ($array as $arrayPoint) { 
     foreach ($arrayPoint as $point) { 
      if ($valueCompare != $point) { 
       return false; 
      } 
     } 
    } 
return true; 
} 
0

只需使用作爲

function checkArray($myArray) { 
    $result = array_unique(array_column($myArray, 'point')); 
    return (count($result) == 1 && $result[0] == '4') ? "true" : "false"; 
} 
echo checkArray($myArray);