Есть строка PHP: $a = title:article:тут текст;title:article:тут текст; чтобы разобрать эту строку использую PHP: $a_tmp = explode(";", $a); for ($i = 0;$i < count($a_tmp); $i++) { // тут данные }# end for Плюс ещё раскладываю по : В принципе ничего страшного, всё работает, но есть вопрос - Может быть лучше данные хранить в формате json? Что будет работать быстрее?
Не знаю зачем расскладывать..но можно вот так разложить PHP: <?php ini_set('display_errors',1); error_reporting(E_ALL); setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251'); $m ="title:article:тут текст;title:article:тут текст;"; $new=preg_split('/[;:]/si',$m); print_r($new); ?>
данные заполняются в форме пользователем пример ряд 1 | тут значение | тут значение | тут значение | тут значение | ряд 2 | тут значение | тут значение | тут значение | тут значение | ряд 3 | тут значение | тут значение | тут значение | тут значение | значения не большие, вот думаю в каком виде их хранить в базе, что бы потом их оперативно без нагрузки разложить и показать пользователю. сейчас прикрутил класс json вроде работает. Вариант с preg_split тоже понравился.
вышла загвоздка значения складываются в такую вот строку $test = "article": "1","name_row": "1","size": "1","pricerow": "1";"article": "2","name_row": "2","size": "2","pricerow": "2"; далее PHP: $test_tmp = explode(";", $test); for ($i = 0;$i < count($test_tmp); $i++) { if ($test_tmp[$i]!=""){ $info = function_exists('json_decode') ? json_decode( $test_tmp[$i], TRUE ) : json_decode_from_class( $test_tmp[$i], TRUE ); [color=green]// сам класс не буду выкладывать т.к. json_decode() работает[/color] } $identity = trim($info['article'])." - "; $identity .= trim($info['name_row'])." - "; $identity .= trim($info['size'])." - "; $identity .= trim($info['pricerow'])."<br>"; } echo $identity; кроме - (чёрточки) ничего не выводиться.
вроде разобрался. всем спасибо. недоглядел {} PHP: $test = '{"article": "1","name_row": "1","size": "1","pricerow": "1"};{"article": "2","name_row": "2","size": "2","pricerow": "2"}';