【发布时间】:2020-03-19 20:31:14
【问题描述】:
我得到了一个多维数组,它有 X 个 .... 维数? 我的数组示例:
Array
(
[system] => Array
(
[step_x_y] => Array
(
[0] => Schnitt %1 von %2
[1] => Trin %1 af %2
[2] => Step %1 of %2
)
[type] => Array
(
[0] => Typ
[1] => Type
[2] => Type
)
[next_button] => Array
(
[0] => Aktualisieren
[1] => Opdater
[2] => Update
)
[account.php] => Array
(
[h1] => Array
(
[0] => Kontoeinstellungen
[1] => Konto Indstillinger
[2] => Account Settings
)
[fields_required] => Array
(
[0] => Alle Felder, außer die Geschäftsinformation, müssen ausgefüllt werden
[1] => Alle felter er obligatoriske, dog ikke virksomhedsinfo
[2] => All fields required
)
[mounting] => Array
(
[no] => Array
(
[text] => Array
(
[0] => Keine
[1] => Ingen
[2] => Nothing
)
[more_text] => Array
(
[0] => Keine Befestigung
[1] => Ingen befæstelser
[2] => No mounting
)
)
[CFL] => Array
(
[text] => Array
(
[0] => Frontflansch (CLF)
[1] => Front Flange
[2] => Front Flange
)
[more_text] => Array
(
[0] => Frontflansch zum Schweißen an dem Zylinderrohr
[1] => Front flange til påsvejsning på cylinder rør
[2] => Front Flange to be welded on cylinder tube
)
) ....
我正在尝试将该数组转换为这种“平面”格式: (# 和后面的数组键也必须包含在内)
# system > step_x_y
(DE) Schnitt %1 von %2
(DK) Trin %1 af %2
(EN) Step %1 of %2
# system > type
(DE) Typ
(DK) Type
(EN) Type
# system > next_button
(DE) Aktualisieren
(DK) Opdater
(EN) Update
我使用这段代码,输出所有值,每行一个值:
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($merged_array));
foreach($it as $v) {
echo $v, "<br>";
}
几个问题:
不确定如何在值上方显示“键行”。
[0][1][2] 必须替换为国家代码,0=DE,1=DK,2=EN。
类似这样的:
# system > step_x_y
(DE) Schnitt %1 von %2
(DK) Trin %1 af %2
(EN) Step %1 of %2
# system > type
(DE) Typ
(DK) Type
(EN) Type
# system > next_button
(DE) Aktualisieren
(DK) Opdater
(EN) Update
希望你们中的一个可以帮助我:)
更新:
我按照建议更改了一些代码:
foreach ($it as $k => $v) {
if($k == 0)
$cc = '<br>(DE)';
elseif($k == 1)
$cc = '(DK)';
elseif($k == 2)
$cc = '(EN)';
else
$cc = '-';
echo $cc, $v, "<br>";
}
这是我现在收到的输出:
(DE) Schnitt %1 von %2
(DK) Trin %1 af %2
(EN) Step %1 of %2
(DE) Typ
(DK) Type
(EN) Type
(DE) Aktualisieren
(DK) Opdater
(EN) Update
只需要在值的每个“部分”上方添加“键”。 这是为了查看文本在数组中的位置(很大)。
# system > step_x_y
(DE) Schnitt %1 von %2
(DK) Trin %1 af %2
(EN) Step %1 of %2
# system > type
(DE) Typ
(DK) Type
(EN) Type
【问题讨论】:
-
foreach ($it as $k => $v)? -
@Jeto 我看不出输出有什么不同。我仍然每行得到一个值。
-
好吧,
$k应该是您需要的关键,除非我误解了。 -
我的错,它现在几乎可以工作了:) 我得到了值前面的键名。您知道如何将所有“属于”该值的键的名称发布吗? (例如:系统> step_x_y)。将使用您的代码在我的帖子中发布一个小更新。
-
哦,我错过了那部分。那么让我提出一个解决方案(给我几分钟)。
标签: php arrays multidimensional-array