2015-12-17 80 views
0

我想將$_POST中的某些值保存到文件中。但我只想要數值在數組$lang的數組中。如何通過鍵獲取兩個數組的交集?

作爲一個例子:

$_POST = [1 => "a", 2 => "b", 3 => "c"]; 
$lang = [2, 3]; 

利用該輸入我只要從$_POST的值,其中所述鍵是$lang陣列英寸

預計產出將是:

[2 => "b", 3 => "c"] 

現在,我嘗試使用ArrayIteratorMultipleIterator存檔這一問題,但是遍歷兩個數組:

$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"); 
} 

所以我有點卡住瞭如何解決這個問題?

+0

所以你想使用'$ lang'作爲'$ _POST'的鍵嗎? – Rizier123

+0

你能不能很好地滿足你的需求? –

+0

@ Rizier123 no。 $ lang –

回答

1

試試這個:

// Combining both arrays into one. 
$combined_array = array_merge($_POST, $lang); 
$fh = fopen('name.php', 'w'); 
foreach($combined_array as $key => $value){ 
    fwrite($fh , $key .'-' . $value); 
    fwrite($fh ,"\n"); 
} 
-1

×2陣列相結合,請試試這個代碼: -

<?php 
$fname=array("Peter","Ben","Joe"); 
$age=array("35","37","43"); 
$c=array_combine($fname,$age); 
    print_r($c); 
?> 

和兩個數組合並: -

<?php 
$a1=array("red","green"); 
$a2=array("blue","yellow"); 
print_r(array_merge($a1,$a2)); 
?> 

這個代碼是有用的兩個數組合並與合併

0

由於您希望通過按鍵交叉兩個陣列,因此您可以使用array_intersect_key(),但由於按鍵是$lang中的值,因此您只需先用array_flip()(例如,array_flip())將其翻轉即可。

print_r(array_intersect_key($_POST, array_flip($lang)));