0
.xml
ファイルと.txt
ファイルの2つの別々のファイルからデータを取得するシナリオがあります。また、PHPを使用して2つの配列(各ファイルから1つ)を一致する値に結合しようとしていますそれぞれから。配列値のマージ
:私は、次の配列を取得することができています
<?php
function dir_to_array($dir, $se) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value) {
$file_info = pathinfo($value);
if (! in_array($value, array(".", ".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) {
$result[$value] = dir_to_array($dir . DIRECTORY_SEPARATOR . $value);
} else {
if ($file_info['extension'] == 'xml') {
if (isset($se) && $se !== 'undefined') {
if (strpos($value, $se) !== false) {
$result['xml'] = xmlToArray(file_get_contents($dir.'/'.$value));
}
}
}
if ($file_info['extension'] == 'txt') {
$file = fopen($dir.'/'.$value, 'r');
$count = 0;
while (($line = fgetcsv($file)) !== FALSE) {
// trying to match the structure of the above array ($result['xml'])
$result['txt']['records']['PositionRecords']['record'][$count++] = $line;
}
fclose($file);
}
}
}
}
return json_encode($result);
}
echo dir_to_array('path/to/something', $arg);
:
私はそう私がこれまで一緒に入れている次のコードを使用して、前述のファイルのフォーマットを制御できません。 アレイ1:の.xml
[records] => Array
(
[PositionRecord] => Array
(
[record] => Array
(
[0] => Array
(
[keyword] => "something", // Value to match
[position] => "1"
),
...
)
)
)
アレイ2:私はarray_merge
を用いて試みた
[records] => Array
(
[PositionRecord] => Array
(
[record] => Array
(
[0] => Array
(
[keyword] => "something",
[position] => "1",
[volume] => "1000"
),
...
)
)
)
:私はこのような配列で終わるために一致keyword
値にこれらの配列を結合する方法を
[records] => Array
(
[PositionRecord] => Array
(
[record] => Array
(
[0] => Array
(
[0] => "something", // Value to match
[1] => "1000"
),
...
)
)
)
の.txt 、array_merge_recursive
およびarray_combine
しかし、それらは、一方のアレイを他方に付加するだけであるように見える。私もthis answerとthis answerを試しましたが、どちらも空の配列[]
を返します。