получить ключ или значение из массива для использования в php - PullRequest
0 голосов
/ 30 августа 2018

Я хочу присвоить значения из массива простой переменной, мой код выглядит следующим образом:

$codeval = $_POST['code']; //can be Apple or Banana or Cat or Dog
$systemrefcode = array("a" => "Apple", "b" => "Banana", "C" => "Cat", "D" => "Dog");

foreach($systemrefcode as $code => $value) {
     if($codeval == $value){ //if Apple exists in array then assign code and use it further
        $codes = $code;//Assign code to codes to use in next step

     }
$selection = 'Your Selection is -'.$codes.'and its good.';
echo $selection;

Когда я проверяю в консоли, он не показывает ответа. Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Вы можете break из foreach, когда есть совпадение, и затем повторить строку.

$post = "1-Apple";
$codeval = explode('-', $post)[1];
$systemrefcode = array("a" => "Apple", "b" => "Banana", "C" => "Cat", "D" => "Dog");
$codes = "";

foreach ($systemrefcode as $code => $value) {
    if ($codeval === $value) { //if Apple exists in array then assign code and use it further
        $codes = $code;//Assign code to codes to use in next step
        break;
    }
}

if ($codes !== "") {
    $selection = 'Your Selection is -' . $codes . ' and its good.';
    echo $selection; // Your Selection is -a and its good.
} else {
    echo "codes is empty";
}
0 голосов
/ 30 августа 2018

Вы можете перевернуть массив $systemrefcode, чтобы значения стали ключами, и наоборот.

$coderefsystem = array_flip($systemrefcode);
$codes = $coderefsystem($codeval);
$selection = 'Your Selection is -'.$codes.'and its good.';
echo $selection;
0 голосов
/ 30 августа 2018

Ключ требуемого значения можно получить с помощью array_search () :

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;

Итак, для вашего кода работает, вы можете использовать так:

$codeval = $_POST['code'];
$systemrefcode = array("a" => "Apple", "b" => "Banana", "C" => "Cat", "D" => "Dog");

$code = array_search($codeval, $systemrefcode);

$selection = 'Your Selection is - '.$code.' and its good.';
echo $selection;

OBS:.

  1. array_search () вернет false , если значение не найдено;
  2. array_search () чувствителен к регистру , поэтому, если у вас есть ' Apple ' в массиве и выполните поиск ' apple ' , он вернет false .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...