php - 传递逗号分隔的键字符串并根据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
解决方案
使用 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)));
一个班轮:
echo implode(",", array_intersect_key($array, array_flip(explode(",",$str))));
阅读混乱,但上面的评论可以解释它的作用。
这意味着您不需要 $keyarray
推荐阅读
- powershell - 查询 Office 365 许可状态时无法筛选表的输出
- javascript - 在 Nav 中选择一个 Div
- c# - 有没有比 .Any() 更快的方法来查找 IEnumerable
有数据吗? - azure - 有关 Azure AD + Intune 许可的问题?
- spring-boot - Spring-boot,JPA如何保存对象的集合
- python - 如何将 ASCII 323534 转换为十进制 254
- javascript - 在 var siteurl 上将 HTTP 替换为 HTTPS 以消除 xmlhttprequest 错误
- mobile-safari - 未检测到 Aframe 移动设备运动
- laravel - Laravel 导出到 csv 超时
- ios - 在我构建的第一个函数中出现“无法识别的选择器错误”