这是我的数组:[["STR_License_Driver",1],["STR_License_Truck",0],["STR_License_Pilot",1],["STR_License_Firearm",0],["STR_License_Rifle",0]]
我的目标是创建一个名为results
的数组或字符串(不确定最佳方法),其中许可证的值为1.
例如:结果应类似于:STR_Licenses_Driver, STR_Licenses_Pilot
。
我目前正在使用PHP版本7和Laravel版本5.5
答案 0 :(得分:1)
$licenses = [["STR_License_Driver",1],["STR_License_Truck",0],["STR_License_Pilot",1],["STR_License_Firearm",0],["STR_License_Rifle",0]];
映射第二项等于1的已过滤数组,以获取许可证名称。
$filterVal = 1;
$licenseNames = array_map(
function ($item) { return $item[0]; },
array_filter(
$licenses,
function ($item) use ($filterVal) { return $item[1] === $filterVal; }
)
);
然后内嵌许可证名称数组,以通过胶水串加入。
echo implode($licenseNames, ', ');
答案 1 :(得分:1)
我记得你的数据结构上的Python。
试试我的解决方案: https://3v4l.org/nrfqZ
答案 2 :(得分:1)
JSON解码$ this->许可证并执行循环。
整码
$licenses = $this->licenses;//This is your posted array string
$result = json_decode($licenses);
$licenses_with_1 = array();
foreach($result as $i){
foreach($i as $key => $value){
if($value == 1){
$licenses_with_1[] = $i[0];
}
}
}
print_r($licenses_with_1);
<强>结果强>
Array ( [0] => STR_License_Driver [1] => STR_License_Pilot )