Php 向多维数组添加另一个值
我有这样一个数组:Php 向多维数组添加另一个值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这样一个数组: $total= [20140124] => Array ( [abc] => 0.19287878787879 [total] => 38 [revenue] => 1232 [clicks] => 1110 [score]=>100 ) [20140123] => Array ( [abc] => 0.
$total= [20140124] => Array
(
[abc] => 0.19287878787879
[total] => 38
[revenue] => 1232
[clicks] => 1110
[score]=>100
)
[20140123] => Array
(
[abc] => 0.32898148148148
[total] => 28
[revenue] => 1142
[clicks] => 1022
[score]=>200
)
现在,我正在准备另一个阵列,并检查以下一些条件:
foreach($total as $t){
$new_array[] = array(
"total"=>$t->abc;
"another_value"=>$t->revenue/$t->clicks;
);
if(some_condition){
$new_array[] = array("total_score"=>$t->clicks+$t->score);
}
}
我需要的是一个类似
$new_array =
[0] => Array
(
[total] => total_value
[another_value] => anopther_value
[total_score] => total_score_value
)
[1] => Array
(
[total] => total_value
[another_value] => anopther_value
[total_score] => total_score_value
)
)
但是我没有把总的分数插入到第0个索引中。相反,整个数组将替换为if条件中的值。我怎样才能用其他指标也得到总分呢?试试这个:
foreach($total as $t){
$array_element = array();
$array_element["total"] = $t["abc"];
$array_element["another_value"] = $t["revenue"] / $t["clicks"];
);
if(some_condition){
$array_element["total_score"] = $t["clicks"] + $t["score"];
}
$new_array[] = $array_element;
}
在代码中,您将向$new\u数组添加一个元素,然后检查该条件。因此,您正在添加下一个元素,但不编辑第一个元素,您可以尝试:
foreach($total as $t){
$data = array(
'total' => $t['abc'],
'another_value' => $t['revenue'] / $t['clicks']
);
if(some_condition){
$data['total_score'] = $t['clicks'] + $t['score'];
}
$new_array[] = $data;
}
它不会被插入到第0个索引中,因为您正在使用$new\u array[],它在每次调用时都会创建一个新索引。通过增加循环中的计数器或每次迭代调用一次,可以使用固定索引。您的计数器解决方案如下所示:
$count = 0;
foreach($total as $t){
$new_array[$count] = array(
"total"=>$t->abc;
"another_value"=>$t->revenue/$t->clicks;
);
if(some_condition){
$new_array[$count] = array("total_score"=>$t->clicks+$t->score);
}
$count++;
}
为什么在数组上使用对象表示法($t->abc)?哈……无论如何,这是一个错误,实际上两个答案是相同的。因此,我接受第一个。:)谢谢你@k102使用的->
在此处不正确。您正在循环数组,而不是对象,因此必须使用
$array['key']`调用数组s元素@好的。。。羞愧me@k102实际上是我的错误,我使用了'->'作为数组。不知怎么的,它出现在我的脑海里,所以我就用了它。无论如何,当我使用k102解决方案时,我纠正了它并使用了数组。