0
2 개의 배열 ($ arr1과 $ arr2)이 있습니다. 두 번째 배열이 병합 된 후 첫 번째 배열의 값이 키가되도록 결합해야했습니다.값이 키가되는 곳에 두 개의 배열을 결합하십시오.
기본적으로 $ arr1은 내가 사용한 array_combine()의 결과입니다. 그러나 제 3의 배열에 동일한 액션을 구현하고 싶었지만, 원하는 결과를 얻을 수 없었습니다.
Array(
[fb1] => Array
(
[test1] => Array
(
[0] => "A"
[1] => "B"
)
)
[fb2] => Array
(
[test2] => Array
(
[0] => "C"
[1] => "D"
)
)
)
이 코드 I입니다 :
$는
Array(
[fb1] => Array
(
[0] => "test1"
)
[fb2] => Array
(
[0] => "test2"
)
)
$ arr2는 [] [] []
Array(
[0] => Array
(
[0] => Array
(
[0] => "A"
[1] => "B"
)
)
[1] => Array
(
[0] => Array
(
[0] => "C"
[1] => "D"
)
)
)
이것은 내가 찾고 결과입니다 arr1 주로 사용 :
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($filer);
$objWorksheet = $objPHPExcel->setActiveSheetIndex(1);
$objWorksheet1 = $objPHPExcel->setActiveSheetIndex(3);
$objWorksheet2 = $objPHPExcel->setActiveSheetIndex(4);
echo "<table cellpadding='0' cellspacing='0' border='0' width='100%' id='tblMain' style='color: #FFFFFF;'>" . "\n";
echo '<tr>';
/*************************************************/
// sheet 0 floor
$array_test = array();
foreach ($objWorksheet->getRowIterator() as $row)
{
$rowIndex = $row->getRowIndex();
$cell = $objWorksheet->getCell("A". $rowIndex);
$array_test[] = $cell->getCalculatedValue();
}
//print '<pre>'.print_r($array_test,true).'<pre>';
/*************************************************/
// sheet1
foreach ($objWorksheet->getRowIterator() as $row)
{
PHPExcel_Calculation::getInstance($objWorksheet->getParent())->clearCalculationCache();
$rowIndex = $row->getRowIndex();
$cell = $objWorksheet->getCell("B". $rowIndex);
$array_units[][] = $cell->getCalculatedValue();
}
$array_c = $this->combine_arr($array_test, $array_units);
// /*************************************************/
//sheet 2
foreach ($objWorksheet1->getRowIterator() as $row)
{
$rowIndex = $row->getRowIndex();
$cell = $objWorksheet->getCell("B". $rowIndex);
if($cell->getCalculatedValue() == ""){
$artest[][][] = "NONE";
}
else{
$artest[][][] = $cell->getCalculatedValue();
}
}
// var_dump($array_co);
//$slice = array_slice($artest, 0, 35);
// echo count($array_c)."<br/>";
// echo count($slice);
//$array_co = array_merge_recursive(, $slice);
// print '<pre>'.print_r($array_c, true).'<pre>';
// print '<pre>'.print_r($artest, true).'<pre>';
$merged = array_merge_recursive($array_c, $artest);
print '<pre>'.print_r($array_c, true).'<pre>';
echo "<br/>";
print '<pre>'.print_r($artest, true).'<pre>';
echo "<br/>";
print '<pre>'.print_r($merged, true).'<pre>';
답변을 게시하기 시작했지만 귀하의 질문이 충분히 명확하지 않다는 것을 깨달았습니다. $ arr2의 값을 같은 * 위치 * (n 번째 자식의 x 번째 자식)와 일치 시키길 원하나요, 아니면 마음에두고 있었던 다른 알고리즘이 있습니까? – RobP
그것은 내가 두 번째 노드의 값으로 키를 대체하려고하기 때문에 $ arr2의 값과 어떻게 일치합니까? – mmr