Ваш массив:
$array = [
['value' => 100, 'tag' => 'a'],
['value' => 200, 'tag' => 'b'],
['value' => 300, 'tag' => 'a'],
];
Чтобы найти записи с помощью условий, вы можете сделать это
$newArray = array_values(array_filter($array, function($n){ return $n['value'] >= 101 && $n['value'] <= 400; }));
При этом вы можете установить значения, минимальные и максимальные числа.
Если вы хотите установить только минимальное число, вы можете опустить максимальное значение следующим образом
$arrayByOnlyMin = array_values(array_filter($array, function($n){ return $n['value'] >= 199; }));
Это вернет:
array(2) {
[0]=>
array(2) {
["value"]=>
int(200)
["tag"]=>
string(1) "b"
}
[1]=>
array(2) {
["value"]=>
int(300)
["tag"]=>
string(1) "a"
}
}
, так что звонит $arrayByOnlyMin[0]
даст вам первую запись, которая соответствует вашему минимальному условию.
Согласно этому сайту: http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronized, C# lock
и Java synchronized
блоки кода "семантически идентичны", в то время как для методов, Java использует synchronized
в то время как C# использует атрибут: [MethodImpl(MethodImplOptions.Synchronized)]
.
Одно интересное различие, не охваченное в ссылке, отправленной Keeg: насколько я знаю, нет никаких эквивалентных вызовов метода в Java для Монитора.NET. Войдите и Монитор. Выход, который C# lock
оператор сводится к. Это означает, что Вы не можете сделать эквивалента Монитора. TryEnter любой - хотя, конечно, java.util.concurrent.locks пакет (с 1,5) имеет множество блокировок, которые имеют больше функций в наличии.
Я Java, который Вы не должны волновать по поводу блокировки открытых типов, которыми Вы владеете.
В.NET Вы имеете к
Обновленный: это для типов, которыми Вы владеете. Соединение открытых типов, которыми Вы не владеете, плохо на любом языке :)