2014-08-15 2 views
0

EDIT:Создать новый массив путем сопоставления значения, переданные из HTML страницы

Это то, что я пытаюсь достичь:

HTML страницы проходит несколько символов с помощью метода POST. php захватывает его, а теперь в зависимости от значений, переданных с HTML-страницы, я хочу создать новый массив, сопоставляя элементы массива, уже находящиеся в php.

пример: HTML передает эти значения в PHP $_POST['a1'] | $_POST['a2'] | $_POST['a5'] | $_POST['a8']

Это является фиксированным элементам массива в PHP. $fixedItems = array(chair, cup, ladder, bed, pillow, shoes, apple, sprrrow);

Как создать массив NEW, сопоставляя элементы, переданные из HTML, из массива $fixedItems.

if `$_POST['a1']` add "chair" to $fixedItems 
if `$_POST['a2']` add "cup" to $fixedItems 
if `$_POST['a3']` add "ladder" to $fixedItems 
if `$_POST['a4']` add "bed" to $fixedItems 
if `$_POST['a5']` add "pillow" to $fixedItems 

так далее ...

Окончательный результат для приведенного выше примера должно быть:

$fixedItems = array("chair", "cup", "pillow");

+0

Что вы имеете в виду свежий массив –

+0

Можно ли увидеть HTML? это может облегчить работу над тем, что вы пытаетесь сделать точно. – Mattigins

+0

Итак, когда '$ _POST ['a {n}']' 'isset' вы хотите захватить этот конкретный элемент из фиксированного списка (' $ fixedList [n-1] ')? – PeeHaa

ответ

2

Я не совсем понял, о чем вы говорите, но вы можете использовать array_push() функции в PHP для вставки данных в array.Use ниже код

<?php 
$fixedItems = array(); 
if (isset($_POST['a1'])){ array_push($fixedItems, "Chair");} 
if (isset($_POST['a2'])){ array_push($fixedItems, "Cup"); } 
if (isset($_POST['a3'])){ array_push($fixedItems, "Ladder"); } 
if (isset($_POST['a4'])){ array_push($fixedItems, "bed"); } 
if (isset($_POST['a5'])){ array_push($fixedItems, "Pillow"); } 
?> 

Я надеюсь, что это поможет вам

0

Вы ищете что-то вроде этого?

// Create the array that will hold the matched data 
$newArray = array(); 
// Here are your matching conditions 
$fixedItems = array('chair', 'cup', 'ladder', 'bed', 'pillow', 'shoes', 'apple', 'sprrrow'); 
// Loop through the info sent from the front-end 
foreach($_POST AS $k => $v){ 
    // Check if the item posted is in the matching array 
    if(in_array($k, $fixedItems)){ 
     // Add them to your new array, to build up your custom array of matched conditions. 
     array_push($newArray, $v); 
    } 
} 
+1

Спрашивает, ищет ли ОП X или Y в разделе комментариев. Потому что, когда вы догадались, что ваш ответ не имеет никакого смысла. – PeeHaa

+0

Да, это был риторический вопрос .. Не знал, что юмор не входит в раздел ответов. –

+0

Значит, вы говорите, что понимаете потребности ОП? – PeeHaa

-1

Я понимаю, что вы хотели бы построить массив $ fixedItems в зависимости от того, какие поля POST установлены.

Способ достижения этого - array_push(); Функция PHP

Пример:

//Empty Array  
$fixedItems = array(); 

//Your if statement 
if (isset($_POST['a1'])){ 
//Add it to the array 
    array_push($fixedItems, "Chair"); 
} 
1

Самый простой способ сделать это, чтобы немного изменить вам $fixedItems массив:

$fixedItems = array(
    'a1' => 'chair', 
    'a2' => 'cup', 
    'a3' => 'ladder', 
    'a4' => 'bed', 
    'a5' => 'pillow', 
    'a6' => 'shoes', 
    'a7' => 'apple', 
    'a8' => 'sprrrow', 
); 

$freshArray = array(); 
foreach ($fixedItems as $key => $value) { 
    if (isset($_POST[$key])) $freshArray[] = $value; 
} 

В зависимости от ваших потребностей вы должны использовать empty в выше.

Вышеприведенный код упрощает расширение, если вам нужно больше размещать элементы в будущем, потому что вы можете просто добавить еще один элемент в массив, и он будет автоматически работать.

Демо: https://eval.in/179698

+0

спасибо ... это тоже работает! – JonaNathali

-2

вы можете попробовать использовать Еогеасп сделать создать массив автоматически

if (!empty($_POST)) 
     { 
      foreach ($_POST as $key => $value) 
      { 
       $fixedItems = array_push($fixedItems, $_POST[$value]); 
      } 

     } 
    return $fixedItems; 
Смежные вопросы