我想比较两个数组,一个来自购物车,另一个来自csv文件解析。购物车中的数组如下所示:
Array
(
[0] => Array
(
[id] => 7
[qty] => 1
[price] => 07.39
[name] => walkthebridge
[subtotal] => 7.39
)
[1] => Array
(
[id] => 2
[qty] => 1
[price] => 07.39
[name] => milkyway
[subtotal] => 7.39
)
)
我的csv文件中的数组看起来像这样
Array
(
[0] => Array
(
[0] => 1
[1] => walkthebridge
[2] => 07.39
)
[1] => Array
(
[0] => 2
[1] => milkyway
[2] => 07.39
)
)
并使用此代码构建
$checkitems = array();
$file = fopen('checkitems.csv', 'r');
while (($result = fgetcsv($file)) !== false) {
$checkitems[] = $result;
}
fclose($file);
如何获取第二个数组中的键以匹配第一个数组中的键? (因此0将是id,1将是名称等等)
提前致谢
答案 0 :(得分:2)
这样的东西?
while (($result = fgetcsv($file)) !== false) {
$checkitems[] = array(
'id' => $result[0],
'name' => $result[1],
'price' => $result[2]
);
}
答案 1 :(得分:1)
让我们说$ oldArray是你的第二个'csv'数组,然后:
$newArray=array();
foreach($oldArray as $v){
$t=array();
$t['id']=$v[0];
$t['name']=$v[1];
// etc...
$newArray[]=$t;
}
未经测试,但这是映射键值的一种方法..
答案 2 :(得分:0)
csv不是关联键值存储方法。如果你想这样做,你需要自己做。
无论如何,您都可以使用array_combine