【发布时间】:2016-03-23 21:33:53
【问题描述】:
我想将$_POST 中的某些值保存到文件中。但我只想要键在数组$lang 中的值。
举个例子:
$_POST = [1 => "a", 2 => "b", 3 => "c"];
$lang = [2, 3];
有了这个输入,我只想要来自$_POST 的值,其中键位于$lang 数组中。
预期的输出是:
[2 => "b", 3 => "c"]
现在我正在尝试使用 ArrayIterator 和 MultipleIterator 归档它,但这会循环通过两个数组:
$post = new ArrayIterator($_POST);
$lang_array = new ArrayIterator($lang);
$it = new MultipleIterator;
$it->attachIterator($post);
$it->attachIterator($lang_array);
$fh = fopen('name.php', 'w');
foreach($it as $e) {
fwrite($fh , $e[1] .'-' . $e[0] );
fwrite($fh ,"\n" );
}
所以我有点卡住了如何解决这个问题?
【问题讨论】:
-
所以你想使用来自
$lang的值作为$_POST的键? -
你能详细说明你需要什么吗?
-
@Rizier123 没有。来自 $_POST 的值作为 $lang 的键
-
@DonLaknath 不要把事情复杂化,直接做吧:
print_r(array_intersect_key($_POST, array_flip($lang))); -
@Rizier123 好样的,一点都不复杂!呵呵
标签: php arrays arrayiterator