在php中增加多维数组中的值
我无法正确理解PHP中的多维数组。我有一个CSV文件,有两列,如下所示: 我试图创建一个数组数组,其中每个键都是一个目录。但是,每个键的值都是一个数组。在这个数组中,每个键都是company,value是产品的计数。请参见下面的代码:在php中增加多维数组中的值,php,multidimensional-array,Php,Multidimensional Array,我无法正确理解PHP中的多维数组。我有一个CSV文件,有两列,如下所示: 我试图创建一个数组数组,其中每个键都是一个目录。但是,每个键的值都是一个数组。在这个数组中,每个键都是company,value是产品的计数。请参见下面的代码: <?php //array contains value function contains_value($my_array, $value_search){ foreach ($my_array as $key => $value) {
<?php
//array contains value
function contains_value($my_array, $value_search){
foreach ($my_array as $key => $value) {
if ($value === $value_search)
return true;
}
return false;
}
//array contains key
function contains_key($my_array, $key_search){
foreach ($my_array as $key => $value) {
if ($key === $key_search)
return true;
}
return false;
}
$handle = fopen("product_list.csv", "r");
$products = array();
if ($handle) {
while (($line = fgets($handle)) !== false) {
$product = explode(",", $line);
$category = $product[0];
$company = $product[1];
if (contains_key($products, $category)) {
if (contains_value($products, $company)) {
//increase the count of category by 1
$products[$category][$company] = $products[$category][$company] + 1;
} else {
//append new company with count 1
array_push($products[$category], array(
$company,
1
));
}
} else {
//initialize new company with count 1
$products[$category] = array(
$company,
1
);
}
}
fclose($handle);
}
var_dump($products);
?>
我注意到var\u dump($products)
没有显示更正信息。我期待着以下结果:
我没有足够的声誉来回答,但我认为他需要考虑 要完成“活到死”的答案,更像这样:
if (!array_key_exists($category, $products)) {
products[$category] = [];
}
if (!array_key_exists($company, $products[$category])) {
products[$category][$company] = 0;
}
++$results[$cataegory][$company];
但是更干净;)
编辑:
如果我记得清楚的话,他的第一个想法是:
$products[$category][] = $company;
代码较短。也许你可以把这两个想法结合起来。我没有足够的声誉来回答,但我认为他需要考虑 要完成“活到死”的答案,更像这样:
if (!array_key_exists($category, $products)) {
products[$category] = [];
}
if (!array_key_exists($company, $products[$category])) {
products[$category][$company] = 0;
}
++$results[$cataegory][$company];
但是更干净;)
编辑:
如果我记得清楚的话,他的第一个想法是:
$products[$category][] = $company;
代码较短。也许你可以把这两种想法结合起来。一个“数组数组”或多维数组没有键;您一定在考虑关联数组。你能告诉我们最终输出的结构吗?告诉我们结果应该是什么样子。请看一下更新后的问题。我刚刚添加了示例输出。非常感谢。数组的数组或多维数组没有键;您一定在考虑关联数组。你能告诉我们最终输出的结构吗?告诉我们结果应该是什么样子。请看一下更新后的问题。我刚刚添加了示例输出。非常感谢。我看不到
活到死
给出的答案。你能把那部分也贴出来吗?非常感谢。事实上,它比我的方法短得多,也容易得多。再次感谢。无法看到活到死的答案。你能把那部分也贴出来吗?非常感谢。事实上,它比我的方法短得多,也容易得多。再次感谢。