Я не знаю, как описать или даже назвать эту проблему, но мне кажется, что псевдокод хорошо ее объясняет. У меня есть многомерный массив $data (4 уровня) и следующий PHP-код:
$data = [
'a'=>['b'=>['c'=>['text','text','text'],
'ca'=>['1','1.5','2']
],
'ba'=>['c'=>['text','text','text'],
'ca'=>['1','1.5','2']
]
],
'a1'=>['b'=>['c'=>['text','text','text'],
'ca'=>['1','1.5','2']
],
'ba'=>['c'=>['text','text','text'],
'ca'=>['1','1.5','2']
]
],
];
$new_array = [];
foreach($data as $a=>$bs){
foreach($bs as $b=>$cs){
foreach($cs as $c=>$d){
$new_array[$c][$b][$a] = $d;
}
}
}
//I don't know why ...
print_r($new_array);//works, including indices
print_r($new_array['known_index']);//displays nothing, no errors or warnings
print_r($new_array[0]);//displays nothing, no errors or warnings
print_r(current($new_array));//works
Я попробовал заключить индексные переменные в двойные кавычки, и в целом мне удалось обойти проблему. Я просто не знаю, что происходит, и мне кажется, что я должен это сделать. PHP 8.2
Я не знаю, как описать или даже назвать эту проблему, но мне кажется, что псевдокод хорошо ее объясняет. У меня есть многомерный массив $data (4 уровня) и следующий PHP-код: [code] $data = [ 'a'=>['b'=>['c'=>['text','text','text'], 'ca'=>['1','1.5','2'] ], 'ba'=>['c'=>['text','text','text'], 'ca'=>['1','1.5','2'] ] ], 'a1'=>['b'=>['c'=>['text','text','text'], 'ca'=>['1','1.5','2'] ], 'ba'=>['c'=>['text','text','text'], 'ca'=>['1','1.5','2'] ] ], ];
$new_array = [];
foreach($data as $a=>$bs){ foreach($bs as $b=>$cs){ foreach($cs as $c=>$d){ $new_array[$c][$b][$a] = $d; } } }
//I don't know why ...
print_r($new_array);//works, including indices
print_r($new_array['known_index']);//displays nothing, no errors or warnings
print_r($new_array[0]);//displays nothing, no errors or warnings
print_r(current($new_array));//works [/code] Я попробовал заключить индексные переменные в двойные кавычки, и в целом мне удалось обойти проблему. Я просто не знаю, что происходит, и мне кажется, что я должен это сделать. PHP 8.2