Я не совсем уверен, что вы хотите сделать, и это было некоторое время, так как я в последний раз написал PHP, но я люблю этот вопрос, и я хотел бы предложить 4 возможных подходов:
1: использовать массивы, которые вы указали (я считаю, что это может быть то, что вы имеете в виду)
$one = array("test", "100");
$two = array("something", "200");
$distance1 = $one[1];
$distance2 = $two[1];
if($distance1 > $distance2)
2: ассоциативные массивы, а также номера для значений
$one = array(
"name" = > "test",
"distance" => 100
);
$two = array(
"name" => "something",
"distance" => 200
);
if ($one["distance"] > $two["distance"])
3: Использование цикла Еогеасп с $ ключ и $ Val
$distances = array(
"test" => 100,
"something" => 200
);
$highestDistance = 0;
$highest = null;
foreach ($distances as $key => $val) {
if ($val >= highestDistance) {
$highestDistance = $val;
$highest = $key;
}
}
if ($highest === 'test')
4: объекты и сортировка:
$distances = array(
(object) array(
"name" => "test",
"distance" => 100
),
(object) array(
"name" => "something",
"distance" => 200
)
);
usort($distances, function($a, $b) { return $a - $b; });
if ($distances[0]->name === 'test')
Обратите внимание, что условия окончательных операторов if
оцениваются до false
, так как я считаю, что это ваше намерение (потому что 100 не превышает 200).
Вы имеете в виду, что у массива больше элементов? – Rizier123
Нет, как вы можете видеть, тест содержит 100 и что-то содержит 200, я хочу автоматически проверить, является ли тест biiger чем-то (их значения, на моем примере вы можете увидеть значения 100 и 200) –
Обратите внимание, что ваши массивы имеют 2, и, как из вашего кода, похоже, что у вас есть только одно значение. Кроме того, обратите внимание, что в вашем цикле foreach у вас есть '$ val => $ key' в неправильном порядке. Так что вы, возможно, захотите просто сделать: 'array (" test "=> 100)', а затем вы можете использовать '' test "' как ключ для доступа к элементу напрямую, как этот '$ one [" test "]' – Rizier123