Как получить значение ключа в ассоциативном массиве PHP, сравнивая ключ со строкой, чтобы получить значение? - PullRequest
0 голосов
/ 15 апреля 2019

У меня ниже небольшой скрипт PHP, мне просто нужно значение из массива, если я предоставлю ключ в $str.

$empid_array = array('CIP004 - Rinku Yadav', 'CIP005 - Shubham Sehgal');

$key = array();
$value = array();

$str = "CIP004";

foreach($empid_array as $code){

  $str = preg_split("/\-/", $code);
  array_push($key, $str[0]);
  array_push($value, $str[1]); 
}

$combined = array_combine($key, $value);

echo count($combined);

foreach($combined as $k => $v){
    if($str == $k){
        echo $v;
    }
}

1 Ответ

0 голосов
/ 15 апреля 2019

Вы можете значительно упростить свой код здесь.Шаг первый, используйте array_walk для обхода массива и построения массива $combined.Шаг второй, нет смысла проходить через массив, просто получить доступ к значению по индексу:

$empid_array = ['CIP004 - Rinku Yadav', 'CIP005 - Shubham Sehgal'];
$str = "CIP004";
$combined = [];
// passing $combined by reference so we can modify it
array_walk($empid_array, function ($e) use (&$combined) {
    list($id, $name) = explode(" - ", $e);
    $combined[$id] = $name;
});

echo $combined[$str] ?? "Not found";
...