проверить, существует ли значение в массиве - PullRequest
3 голосов
/ 21 ноября 2011

Я пытаюсь этот код, чтобы проверить, существует ли значение в массиве.

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
    echo (array_key_exists($num, $arr)); //show the index, in this case 1
}

Мне нужно показать соответствующее значение, другими словами, 0.58

Какя могу это сделать?

Ответы [ 4 ]

5 голосов
/ 21 ноября 2011

Что вам нужно, это:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
    echo $arr[$num];
}
2 голосов
/ 21 ноября 2011

Предполагая, что у вас есть позиция ключа или индекса нужного значения, вы можете использовать две функции: array_key_exists() или isset().

array_key_exists() проверяет массив, чтобы увидеть, существует ли указанный вами ключ в массиве.Он не проверяет, есть ли значение, связанное с этим ключом.Другими словами, ключ может быть установлен в массиве, однако значение может быть нулевым.

Пример использования:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (array_key_exists($num, $arr)) {
  echo $arr[$num];
}

isset() можно использовать, чтобы увидеть, является ли значениеустановить в определенном индексе массива.

Пример использования:

$arr = array ('2' => '0', '3' => '0.58');

$num=3;
if (isset($arr[$num])) {
  echo $arr[$num];
}

Поскольку вы, похоже, просите проверить только, существует ли определенное значение в массиве , вы можете взглянуть на использование in_array(), которое будет сканировать значения массива и возвращать true или false в зависимости от того, найдет ли оно значение.

Пример использования:

$arr = array ('2' => '0', '3' => '0.58');
$needle = '0.58';
if (in_array($needle, $arr)) {
  echo "found: $needle";
}

Кроме того, в php.net есть множество других функций массива , с которыми вам следует ознакомиться.

1 голос
/ 21 ноября 2011

Попробуйте

<?php
$arr = array(
    '2' => '0',
    '3' => '0.58'
    );

$num = 3;
if (array_key_exists($num, $arr)) {
    echo $arr[$num];
    //  0.58
}
echo '<br/>';
$val = '0.58';
if (in_array($val, $arr)) {
    echo '0.58 found';
}
?>
1 голос
/ 21 ноября 2011
var_dump(in_array(0.58, $arr)); // 3

актуально документы .

...