Как добавить данные из формы PHP в массив? - PullRequest
1 голос
/ 17 февраля 2009

Если у меня есть цикл, который запрашивает мои данные из моей формы:

for ($i=0;$i < count($_POST['checkbx']);$i++) {
    // calculate the file from the checkbx
    $filename = $_POST['checkbx'][$i];
    $clearfilename = substr($filename, strrpos ($filename, "/") + 1);
    echo "'".$filename."',";       
}

Как мне добавить это в примерный массив ниже?:

$files = array(
  'files.extension',
  'files.extension', 
);

Ответы [ 6 ]

5 голосов
/ 17 февраля 2009

Еще меньше:

$files = array();
foreach($_POST['checkbx'] as $file)
{
    $files[] = basename($file);
}

Если вы не совсем уверены, что $_POST['checkbx'] существует и является массивом, который вы должны выполнить:

$files = array();
if (is_array(@$_POST['checkbx']))
{
    foreach($_POST['checkbx'] as $file)
    {
        $files[] = basename($file);
    }
}
2 голосов
/ 17 февраля 2009

Помните, что вам также необходимо назвать эти флажки в HTML с "[]" после их имен. e.g.:

<input type="checkbox" name="checkbx[]"  ...etc... >

После этого вы сможете получить к ним доступ таким образом:

<?php

// This will loop through all the checkbox values
for ($i = 0; $i < count($_POST['checkbx']); $i++) {
   // Do something here with $_POST['checkbx'][$i]
}

?>
1 голос
/ 17 февраля 2009

Вы можете использовать функцию array_push:

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

Даст:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Просто заполните массив, используя array_push для каждого файла.

1 голос
/ 17 февраля 2009
$files[] =$filename;

OR

array_push($files, $filename);
0 голосов
/ 17 февраля 2009

Я не совсем уверен, что вы хотите добавить в этот массив, но вот общий метод «помещения» данных в массив с использованием php:

<?php
$array[] = $var;
?>

например, вы можете сделать:

for ($i=0;$i < count($_POST['checkbx']);$i++)
{
   // calculate the file from the checkbx
   $filename = $_POST['checkbx'][$i];
   $clearfilename = substr($filename, strrpos ($filename, "/") + 1);

   echo "'".$filename."',";       
   $files[] = $filename;
}
0 голосов
/ 17 февраля 2009

Вероятно так:

for ($i=0;$i < count($_POST['checkbx']);$i++) {
// calculate the file from the checkbx
$filename = $_POST['checkbx'][$i];
$clearfilename = substr($filename, strrpos ($filename, "/") + 1);

$files[] = $filename; // of $clearfilename if that's what you wanting the in the array  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...