У меня есть следующее $_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. :- Только для демонстрации я взял два элемента. В реальном сценарии могут быть сотни таких элементов. Поэтому, пожалуйста, рассмотрите оптимальный и эффективный способ получить этот выходной массив.
Заранее спасибо.
Если у вас есть какие-либо вопросы относительно проблемы, с которой я столкнулся, пожалуйста, дайте мне знать.
Решением вашей проблемы было бы выражение «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 ) "
Надеюсь, поможет
Это должно делать то, что вы хотите, но я не уверен, почему вы захотите эту структуру для ваших данных, если у вас нет чего-то, что ожидает этот формат данных, и вы не можете изменить его.
// 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
}