2013-09-16 80 views
-1

在我的项目上一直工作了几天,而且我很想在这个项目中做的事情是比较用户常规做的csv文件在Excel中,每天晚上自动执行。 我从CSV的介绍数组中获得了信息,但我无法将它们组合起来以获取每本书的正确信息,因此下面的例子和问题。在php中比较数组并将值从一个赋值到另一个

我有一个CSV文件如下因素阵列(数组1):

Array 
(
[0] => Array 
    (
     [0] => book1 
     [1] => description1 
     [2] => category1 
     [3] => code1 
     [4] => editor1 
     [5] => 0 
     [6] => eur 
     [7] => out of stoc 
    ) 

[1] => Array 
    (
     [0] => book2 
     [1] => description2 
     [2] => category2 
     [3] => code2 
     [4] => editor2 
     [5] => 0 
     [6] => curr2 
     [7] => out of stoc 
    ) 

[2] => Array 
    (
     [0] => book3 
     [1] => description3 
     [2] => category3 
     [3] => code3 
     [4] => editor3 
     [5] => 0 
     [6] => curr3 
     [7] => out of stoc 
    ) 

[3] => 
) 

,并从第二CSV文件的另一个数组(数组2):

Array 
(
[0] => Array 
    (
     [0] => book1 
     [1] => description_from_array2 
     [2] => category_from_array2 
     [3] => code_from_array2 
     [4] => editor_from_array2 
     [5] => 12 
     [6] => eur 
     [7] => in stoc 
    ) 

[1] => Array 
    (
     [0] => book2 
     [1] => description_from_array2 
     [2] => category_from_array2 
     [3] => code_from_array2 
     [4] => editor_from_array2 
     [5] => 13 
     [6] => eur 
     [7] => in stoc 
    ) 

[2] => Array 
    (
     [0] => book4 
     [1] => description_from_array2 
     [2] => category_from_array2 
     [3] => code_from_array2 
     [4] => editor_from_array2 
     [5] => 14 
     [6] => usd 
     [7] => in stoc 
    ) 

[3] => Array 
    (
     [0] => book5 
     [1] => description_from_array2 
     [2] => category_from_array2 
     [3] => code_from_array2 
     [4] => editor_from_array2 
     [5] => 16 
     [6] => usd 
     [7] => in stoc 
    ) 

) 

我想知道如何从array2中找到array1的书籍,获取数组的形式array2 intro array1。 例如:

Array 
(
[0] => Array 
(
    [0] => book1 
    [1] => description2_from_array2 
    [2] => category2_from_array2 
    [3] => code2_from_array2 
    [4] => editor2_from_array2 
    [5] => 12 
    [6] => eur 
    [7] => in stoc 
) 

[1] => Array 
(
    [0] => book2 
    [1] => description_from_array2 
    [2] => category_from_array2 
    [3] => code_from_array2 
    [4] => editor_from_array2 
    [5] => 13 
    [6] => curr_from_array2 
    [7] => in stoc 
) 

[2] => Array 
(
    [0] => book3 
    [1] => description3 
    [2] => category3 
    [3] => code3 
    [4] => editor3 
    [5] => 0 
    [6] => curr3 
    [7] => out of stoc //because book3 is not found in array2 
) 

[3] => 
) 

对这个问题的任何帮助,将不胜感激,相信的我!

回答

1
//Add keys to array 2 to aid lookup 
$array2Tmp = array(); 
foreach($array2 as $item){ 
    $array2Tmp[$item[0]] = $item; 
} 

$array3 = array(); 
foreach($array1 as $item){ 
    //Use item from second array if it exists 
    if(array_key_exists($item[0],$array2Tmp)){ 
     $array3[] = $array2Tmp[$item[0]]; 
    }else{ 
     $array3[] = $item; 
    } 
} 
+0

非常感谢你,作品像一个魅力 – Rasvan

+0

@Rasvan没问题,很高兴我可以帮助。 – Jim

+0

我可以问你另一个问题吗? – Rasvan

相关问题