2015-01-20 2 views
-2

я HACE Эта проблема WHIT два массивасравнения числовых значений двух массивов

один массив задается JSON как этот

array1([0] => 6, [1] => 1) 

и сделать запрос я получил этот другой

array2([0] => 1, [1] => 1) 

Я хочу сравнить оба массива и использовать «if», когда числовые значения массива 1 меньше или равны array2. Это возможно? как это?

if($array1 <= $array2){do something} 

Grettings!

+1

Что делать, если один массив имеет ключ 0 <= другой, но ключ 1 есть> другой? – AbraCadaver

+0

Возможно, это будет нормально для вас 'if (array_sum ($ array1) <= array_sum ($ array2)) {...' –

+1

Что делать, если они [1,4] и [2,3]? Какой из них должен быть больше? Является ли количество элементов в массивах одинаковым? –

ответ

0

Это действительно зависит от вашего ожидаемого поведения, а также от ожиданий ваших двух массивов. Ради этих примеров, Я собираюсь предположить, что каждый массив гарантированно будет того же размера, и вы compairing парные элементы (элементы из каждого массива с тем же индексом).


Если вы хотите выйти в первый раз число от array1 меньше, чем его парного элемента из массив2:

for ($i = 0; $i < sizeof($array1); $i++) { 
    if ($array1[$i] <= $array2[$i]) { 
     ...do something 
    } 
} 

Если вы хотите сделать что-то, если все значения из массива 1 меньше их парных элементов из массива2:

// Keep track of a flag so we know if we meet our condition once done 
$allValuesLessThan = true; 

// Check each individual array1 element and its 'paired element' from array2 
for ($i = 0; $i < sizeof($array1); $i++) { 
    // If we break our condition, set our flag and break out of our loop, since we no longer need to check subsequent elements 
    if ($array1[$i] > $array2[$i]) { 
     $allValuesLessThan = false; 
     break; 
    } 
} 

// Finally, only do our 'something' if our condition was met 
if ($allValuesLessThan) { 
    ...do something 
} 
+0

Большое спасибо именно тому, что я хочу сделать! –

Смежные вопросы