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

问题描述 投票:0回答:1

我有以下小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;
    }
}
php arrays associative
1个回答
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";
© www.soinside.com 2019 - 2024. All rights reserved.