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

时间:2019-04-15 15:09:34

标签: php arrays associative

我有一个小的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 :(得分:0)

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