我正在遍历数组,在找到重复的键时,我试图将其添加为键/值的另一个元素。
数据看起来像这样
[139432,97]
[139432,11400]
[139440,97]
[139440,7898]
正如您所看到的,第一个元素是键,并且该键上的任何匹配都应该是键/值,因此结果如下:
139432 => '97', '11400'
139440 => '97', '7898'
所以我使用以下内容来创建一个新数组,或者将新值推送到现有数组:
if(isset($output[$key])) {
array_push($output[$key], array( 'volume' => $temp[1] ));
}
else {
$output[$key] = array( 'score' => $temp[1]);
}
所以我得到的是这样的:
array (size=31)
139432 =>
array (size=2)
'score' => int 97
0 =>
array (size=1)
'volume' => int 11400
139440 =>
array (size=2)
'score' => int 97
0 =>
array (size=1)
'volume' => int 7898
我不想要'音量'部分是另一个数组,我只想要的是:
array (size=31)
139432 =>
array (size=2)
'score' => int 97
'volume' => int 11400
139440 =>
array (size=2)
'score' => int 97
'volume' => int 7898
我如何使用创建,添加数组不正确?
答案 0 :(得分:1)
你可以像这样将它们放入数组中。我认为它会产生你想要的输出。
if(array_key_exists($key, $output)) {
$output[$key]['volume']=$temp[1];
//array_push($output[$key], array( 'volume' => $temp[1] ));
}
else {
$output[$key]['score']=$temp[1];
//$output[$key] = array( 'score' => $temp[1]);
}
答案 1 :(得分:1)
您不需要array_push
。这应该有效:
if(isset($output[$key])) {
if(isset($output[$key]['score'])) {
$output[$key]['volume'] = $temp[1];
}
else {
$output[$key] = array( 'score' => $temp[1]);
}
}