Php 使用阵列生成单个阵列
我有一个数组,在任何给定的点上都可以有许多值,我想要完成的是将所有数组索引合并,并用我的最终值形成一个索引。合并相同的其他值 假设我有下面的数组结果Php 使用阵列生成单个阵列,php,arrays,Php,Arrays,我有一个数组,在任何给定的点上都可以有许多值,我想要完成的是将所有数组索引合并,并用我的最终值形成一个索引。合并相同的其他值 假设我有下面的数组结果 Array ( [0] => stdClass Object ( [component] => sodium chloride [generic_results] => Average:=99.20% ) [1] => stdC
Array
(
[0] => stdClass Object
(
[component] => sodium chloride
[generic_results] => Average:=99.20%
)
[1] => stdClass Object
(
[component] => sodium chloride
[generic_results] => RSD:=0.54%
)
[2] => stdClass Object
(
[component] => sodium chloride
[generic_results] => n:=3
)
)
我想要的是这样的东西
Array
(
[0] => stdClass Object
(
[component] => sodium chloride
[generic_results] => Average:=99.20%,RSD:=0.54%, n:=3
)
)
我尝试了阵列唯一性,但它不工作
生成结果的示例代码:
$arr=array(
(object) array(
'component'=>'sodium chloride',
'generic_results'=>'Average:=99'
),
(object) array(
'component'=>'sodium chloride',
'generic_results'=>'RSD:=0.54'
),
(object) array(
'component'=>'sodium chloride',
'generic_results'=>'n:=3'
)
);
print('<pre>');
print_r($arr);
print('</pre>');
$arr=array(
(对象)数组(
“成分”=>“氯化钠”,
“一般结果”=>“平均值:=99”
),
(对象)数组(
“成分”=>“氯化钠”,
“一般结果”=>“RSD:=0.54”
),
(对象)数组(
“成分”=>“氯化钠”,
“通用结果”=>“n:=3”
)
);
打印(“”);
印刷费($arr);
打印(“”);
对这个问题有什么建议吗?试试这个
$result = array_reduce($arr, function($result, $item) {
if ($result === null) {
// initialize with first item
return [$item];
}
// add generic_results of current item to result
$result[0]->generic_results .= ',' . $item->generic_results;
return $result;
}
);
这将返回一个数组,但您可以(尽管它并不总是足够)然后使用json_decode(json_encode($new2),false)将其转换为对象。希望对您有所帮助。您可以使用,它迭代数组,将所有元素与给定的回调函数组合在一起:
演示:唯一不起作用,因为每条记录都是唯一的,只有部分记录是相同的。你必须循环你的数组,记住你所看到的“组件”条目,使用一个临时数组和一个函数,如_array(),始终具有两个属性
[component]
和[generic\u results]
,即使此数组的大小可能不同?2) [generic\u results]
是唯一变化的字段吗?3) 如果(2)为否,则每次[component]
匹配时,您需要的是串联[generic\u results]
?是的,无论发生什么情况,始终会有两个属性,并且只有generic result始终变为这是什么。另一件事是,我希望组件能够独立运行,即使它被用作keySorry,我也不了解,这正是我想要的。另一件事我希望组件本身,即使它被用作键,也是组件,类似于[component]=>氯化钠,然后[NaCl]=>……诸如此类的东西请看我更新的答案-我相信这就是你想要的?你的答案给了我很多感谢,它很有效,如果我说的是相同的数组,我怎么能做同样的工作,但是现在,组件变量取决于期望的输出是什么
$result = array_reduce($arr, function($result, $item) {
if ($result === null) {
// initialize with first item
return [$item];
}
// add generic_results of current item to result
$result[0]->generic_results .= ',' . $item->generic_results;
return $result;
}
);