[英]extract selected array values based on list php
I have a list of array keys in form of a string 我有一个字符串形式的数组键列表
"hasAddStrict,freqItems,freqAmount,freqUnit,freqFirstDayOfWeek"
Now, want to extract only those values, ie $myarray['hasAddstrict'] should become $hasAddStrict, etc. 现在,只想提取那些值,即$ myarray ['hasAddstrict']应该变成$ hasAddStrict,依此类推。
Is there a short way to do it? 有没有捷径可做? My rather dirty solution:
我比较肮脏的解决方案:
$ff = explode(',' ,"hasAddStrict,freqItems,freqAmount,freqUnit,freqFirstDayOfWeek");
foreach ( $ff as $key){ $ff[$key] = $SERVICE[$key] ; }
extract($ff);
I agree with Jeff that there isn't really a better way, and that keeping the variables as an array is probably a better idea, but you could wrap it up in a function for convenience (tested in php 5.6): 我同意Jeff的观点,实际上并没有更好的方法,将变量保持为数组可能是一个更好的主意,但是为了方便起见,可以将其包装在一个函数中(在php 5.6中进行了测试):
<?php
function array_extract(array $assoc_array, $keys_list)
{
return array_intersect_key($assoc_array, array_flip(explode(',', $keys_list)));
}
extract(array_extract($SERVICE, "hasAddStrict,freqItems,freqAmount,freqUnit,freqFirstDayOfWeek"));
When tested as follows: 当进行如下测试时:
$SERVICE = [
'hasAddStrict' => 123,
'freqItems' => 456,
'freqAmount' => 789,
'freqUnit' => 'abc',
'freqFirstDayOfWeek' => 'def',
];
extract(array_extract($SERVICE, "hasAddStrict,freqItems,freqAmount,freqUnit,freqFirstDayOfWeek"));
var_dump($hasAddStrict, $freqItems, $freqAmount, $freqUnit, $freqFirstDayOfWeek);
You get output: 您得到输出:
int(123)
int(456)
int(789)
string(3) "abc"
string(3) "def"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.