2012-03-23 3 views
3

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

Так что, если мои разместили данные выглядят следующим образом:

Array ([alloy] => Array ([0] => K18 [1] =>) 
     [color] => Array ([0] => Gold [1] =>) 
     [stone] => Array ([0] => Diamond [1] =>) 
     [dimension] => Array ([0] => 3cm [1] =>) 
     [button1] => Submit) 

я хотел бы, чтобы, наконец, выглядит следующим образом: $ Data = 'K18, цвет Gold, Diamond, 3 см';

Я пробовал сериализовать массив imoding, http_build_query, но они не то, что мне нужно.

Если это помогает получить всю идею, я собираю данные из 4 групп флажков и массивов радиообъектов, и я хотел бы поместить выбранные значения в строку с разделителями и сохранить в моем db.

+3

Но 'Post' данные *** *** является массивом ... – JYelton

+3

' 'serialize' или json_encode()' звучит точно, как то, что вам нужно. Где проблема? –

+0

Можете ли вы дать нам немного больше информации о данных, которые вы собираете, и почему что-то вроде 'serialize' не будет работать? –

ответ

2

Может быть, это то, что вам нужно:

$s = array(); 
foreach ($_POST as $k => $v) { 
    if (is_array($v)) { 
    if ('color' === $k) { 
     array_push($s, implode('', array($k, $v[0]))); 
    } else { 
     array_push($s, $v[0]); 
    } 
    } 
} 
echo implode(', ', $s); 
+0

Это работает именно так, как я имел в виду. Большое спасибо! Хотя мне не нужна дополнительная проверка if ('color' --- $ k), это был простой тип ошибки в моем примере. – bikey77

+0

Рад помочь, приятель :) – dotoree

+0

У меня возникла небольшая проблема при выборе нескольких флажков из одного и того же массива флажков, сохранены только первые. В любом случае я могу спасти их всех? – bikey77

1

Вот небольшой трюк. При группировке используйте name[] вместо name. Таким образом, переменная $ _POST ["name"] будет массивом, как вы хотите.

Пример:

<input type="checkbox" name="inputname[]" value="1" /> 
<input type="checkbox" name="inputname[]" value="2" /> 
<input type="checkbox" name="inputname[]" value="3" /> 

PHP

print_r($_POST['inputname']); 

// выход, если все проверено

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
) 

ПРИМЕЧАНИЕ: массив будет содержать только проверенные значения

+0

Мои радиостанции и флажки уже названы так, как вы предлагаете. Пожалуйста, прочтите мой обновленный (перефразированный) вопрос. – bikey77

Смежные вопросы