首页 > 解决方案 > 传递逗号分隔的键字符串并根据PHP中的键获取数组的值

问题描述

我正在尝试从数组中获取值并仅传递逗号分隔的键字符串并获得相同的输出。是否可以不使用 foreach 语句。请给我建议。

<?php
$str = "1,2,3";
$array = array("1"=>"apple", "2"=>"banana", "3"=>"orange");

$keyarray = explode(",",$str);
$valArr = array();
foreach($keyarray as $key){
   $valArr[] = $array[$key];
}
echo $valStr = implode(",", $valArr);    
?>    

输出 :apple,banana,orange

标签: phparraysstring

解决方案


使用 array_intersect_key

$str = "1,2,3";
$array = array("1"=>"apple", "2"=>"banana", "3"=>"orange");

$keyarray = explode(",",$str);
echo implode(",", array_intersect_key($array, array_flip($keyarray)));

https://3v4l.org/gmcON


一个班轮:

echo implode(",", array_intersect_key($array, array_flip(explode(",",$str))));

阅读混乱,但上面的评论可以解释它的作用。
这意味着您不需要 $keyarray


推荐阅读