Как оптимально и эффективно преобразовать массив $ _POST в нужный массив в следующем сценарии?

У меня есть следующее $_POST массив после отправки формы и выполнения следующей строки кода:

print_r($_POST); die;//Code to print the $_POST array

//Following is the output of above statement
Array
(
[fileName] => Array
(
[0] => 8.png
[1] => 2_OnClick_OK.jpg
)

[fileLink] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
[1] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)

[Submit] => Submit File
)

Но на самом деле я хочу новый массив под названием $request_arr который после выполнения print_r($request_arr); die; Команда должна выглядеть следующим образом:

Array
(
[8.png] => Array
(
[0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
)
[2_OnClick_OK.jpg]
(
[0] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
)

)

N.B. :- Только для демонстрации я взял два элемента. В реальном сценарии могут быть сотни таких элементов. Поэтому, пожалуйста, рассмотрите оптимальный и эффективный способ получить этот выходной массив.

Заранее спасибо.

Если у вас есть какие-либо вопросы относительно проблемы, с которой я столкнулся, пожалуйста, дайте мне знать.

0

Решение

Решением вашей проблемы было бы выражение «array_combine».

Useage / пример:

$fname=array("a","b");
$age=array("35","37");
$c=array_combine($fname,$age);
print_r($c);
// Output would be " Array ( [a] => 35 [b] => 37 ) "

Надеюсь, поможет

0

Другие решения

Это должно делать то, что вы хотите, но я не уверен, почему вы захотите эту структуру для ваших данных, если у вас нет чего-то, что ожидает этот формат данных, и вы не можете изменить его.

// Check that both array have same number of elements
if ( count($_POST[ 'fileName' ]) == count($_POST[ 'fileLink' ]) ) {

foreach ( $_POST[ 'fileName' ] as $key => $fn ) {
$request_arr[ $fn ][ 0 ] = $_POST[ 'fileLink' ][ $key ];
}
} else {
// You have bad data
}
0

По вопросам рекламы [email protected]