如何通过将键与字符串进行比较来获取值来获取php关联数组中键的值?

how to get value of key in php associative array by comparing key with a string to get value?

我有下面的小 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;
    }
}

您可以在此处大大简化您的代码。第一步,使用 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";