我有很多基于数组的爆炸像这样的字符串:
$size = explode(",", $row->SIZE);
$coil_no = explode(",", $row->COIL_NO);
$net = explode(",", $row->NET);
$gross = explode(",", $row->GROSS);
$contract_no = explode(",", $row->CONTRACT_NO);
$location = explode(",", $row->LOCATION);
如何将这些数组合并为一个多维数组?
我试过这样:
foreach ($size as $value) {
foreach ($coil_no as $coil) {
$detail[] = array(
"coil_no" => $coil,
"size" => $value
);
}
}
你知道结果循环很奇怪, 我需要更优雅的数组,比如
foreach ($unite_array as $row) :
echo "<tr> $row->size </tr>" ;
endforeach;
联合这些数组的最佳方法是什么?
答案 0 :(得分:1)
您可以编写自己的函数,根据需要对键进行分组,请参见下面的示例:
function array_group(){
if(func_num_args() > 0) {
$params = func_get_args();
$result = array();
foreach($params as $key => $param) {
foreach($param['values'] as $k => $value) {
$result[$k][$param['alias']] = $value;
}
}
return $result;
}
return false;
}
$rows = array_group(
array('alias' => 'size', 'values' => array(1,2,3,4,5)),
array('alias' => 'coil_no', 'values' => array(6,7,8,9,10)),
array('alias' => 'net', 'values' => array(11,12,13,14,15)),
array('alias' => 'gross', 'values' => array(16,17,18,19,20)),
array('alias' => 'contract_no', 'values' => array(21,22,23,24,25)),
array('alias' => 'location', 'values' => array(26,27,28,29,30))
);
print_r($rows);
您可以像访问它一样访问它:
foreach ($rows as $row) :
echo "<tr> {$row['size']} </tr>" ;
endforeach;