【问题标题】:how to get value of key in php associative array by comparing key with a string to get value?如何通过将键与字符串进行比较以获取值来获取php关联数组中键的值?
【发布时间】:2019-04-15 15:09:34
【问题描述】:

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

【问题讨论】:

  • $str[x] 上使用trim,因为它们有空格。
  • 也用explode,这里不需要正则表达式。
  • @miken32 所说的你可以在太空中爆炸
  • 嗨,但仍然不清楚,因为条件检查没有显示结果,我使用了爆炸和修剪解决方案
  • 但是在 array_combine() 上形成了一个关联数组,但是如果我想通过 this==>>> echo $combined[$str]; 获取诸如 $str 之类的键的值;然后没有结果显示给我

标签: php arrays associative


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2017-12-31
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多