#php #arrays #loops #foreach #associative
#php #массивы #циклы #foreach #ассоциативный
Вопрос:
итак, вот первый ключ ассоциативного массива с именем $results:
[
10 (2) => [
step (3) => [
0 (1) => [
id => 1
],
1 (1) => [
id => 2
],
2 (1) => [
id => 3
]
],
status (3) => [
0 (1) => [
id => 2
],
1 (1) => [
id => 4
],
2 (1) => [
id => 10
]
]
],
Я бы хотел переструктурировать его, чтобы он выглядел так:
[
10 (2) => [
step (1) => [
0 (1) => [
id => 1
],
status (1) =>[
0 (1) => [
id => 2
],
step (1) => [
0 (1) => [
id => 2
],
status (1) =>[
0 (1) => [
id => 4
],
AND SO ON...
короче говоря, я просто хочу отобразить step amp; status в виде пары для каждого шага и в результате получить [step, status], [step, status], [step, status] … ассоциативный массив. На данный момент массив больше похож на [шаг, шаг шага], [статус, статус, статус].
Вот мой начальный цикл foreach, который дал мне массив в первую очередь :
$results = [];
foreach ($entities['node'] as $nodeIdBis => $nodeWkf) {
$nodeWkfTmp = ["step" => [], "status" => []];
foreach ($nodeWkf as $wkfId => $subNodeWkf) {
foreach ($subNodeWkf as $stepId => $nodeStatus) {
$nodeWkfTmp["status"][] = ["id" => $nodeStatus['statusId']];
$nodeWkfTmp["step"][] = ["id" => $stepId];
}
}
$results[$nodeIdBis] = $nodeWkfTmp;
}
большое уважение к тому, кто найдет трюк 🙂
Ответ №1:
Просто измените назначение массива $nodeWkfTmp, чтобы получить массив пар [шаг, статус]:
$nodeWkfTmp = [];
$nodeWkfTmp[] = [
"status" => ["id" => $nodeStatus['statusId']],
"step" => ["id" => $stepId]
];